The easiest solution is to use a controller from an existing console. Currently, every system has a controller that works on PC. To get them to work, though, is another matter entirely.
The 360 controller only works (by default) with programs that explicitly support it, or the GFW standard (ass). There is, currently, no program that just supports any of these things and allows you to button map (sadly) ... but there are programs to use them and emulate other input (like the keyboard or a virtual gamepad).
So, you can use those, if you want. I think unless you already have the controller the 360 option is a bit of a rip off. (considering it's $50USD and the charge kit is another $20USD and that's only if you happen to find the Windows version ... if you don't you can add another $20 for the RF adapter: LAME) The other controllers, while at, roughly the same price, use bluetooth and a bluetooth adapter is much more extensible.
But, yeah, I've always found that PC, specific, gamepads have been pretty terrible, so I've always used console gamepads on my PC. There are, of course, other connectors you can buy (usually around $20 USD) that will adapt whatever system controller to USB (or Serial Port :S). I know there's at least one for PSX/2, SNES, NES, and Xbox (why?) and those are all corded. (Keep in mind if these things don't have drivers, you can use that glovepie program to read their input and map them to direct input)
So, if you're more comfortable with a particular console's pad, you can probably just use that and get a way of connecting it (and using it).