xbox 360 controller. You can't beat it.
Plus many games will immediately recognize the controller and you can switch freely between the controller/keyboard without going to the options. Also works for every last thing I've ever tried including all emulators. Xpadder (small program) is useful for mapping new controls to buttons you can't set within the game.
Example: Dead Space 1/2 - If you like playing with the controller do so but if you find yourself in a bind just drop it in your lap and start using the keyboard/mouse.
You can get the wired one or the wireless one, but you have to buy the wireless thing from microsoft's website to use a wireless one.
Don't know about joysticks (like arcade/flight sim joysticks).