I recently bought a Zeemote. It is a bluetooth game controller that has drivers available for Android, Windows Mobile, Blackberry, Symbian and Windows. Here are some pictures of the joystick.
This joystick has been around for a while now, the manufacturers Zeemote originally bundled these with various Nokia handsets along with some free Games. Recently they released an SDK (software development kit) for Android so that game developers could include support for this controller in their games. At the moment there are about 17 games in the android market that have support built in. The most notable are Speedx 3D and quake.
As well as being able to play games with built in support, there is a driver available on the market called “Bluez IME” which allows you to use the controller to map the buttons to various actions from a keyboard, so you can use the controller on various games that supports keyboard input. So you could play driving games, platform games or puzzle games using the controller as well. There are also drivers available on the Zeemote website for Nokia, Samsung, LG, Blackberry and Windows (normal not mobile).
Overall the controller is a great for games, with some smaller screen devices such as the htc desire onscreen controls are too fiddly, the zeemote would be perfect. The zeemote also works really well with my advent vega allowing me to prop the tablet up and play a game without having to hold onto the device the whole time.
The last thing to mention is the cost, brand new on Amazon they cost between £3 and £6.95, so if you fancy trying one of these out it is not going to break the bank.