I use gamepad's on every game possible, as I have my PC connected to a TV, and it is generally more comfortable than the wireless mouse and keyboard which I also have. All the key points in above posts are absolutely correct in regards to Dinput and Xinput. If you never play pre Win XP games, you may not really need to worry about Dinput, although occasionally some newer games use it.
Here are some of my gamepads:
Xbox 360 wireless controller - I have a pair of these despite never having owned a Microft console. Xinput as mentioned is ther current standard on Windows and these are/were the flagship Xinput controllers. I think they are "OK", and let me mention that I do not apparently have the oafishly large hands of the average X-bro 360 player - I find the controller a bit too large. somewhat intredastingly, there was a Japan only model released which has a smaller form factor. Now if you get one of these, you will run in to some issues with full usability in Dinput games, UNLESS you use the custom made drivers created by a Japanese coder which (2 driver sets) give it Dinput functionality in Windows and/or enable force feedback in Dinput games. (Scour Google, te drivers are out there, hosted on a Japanese language page)
Logitech F710 - The wireless version of the F310. I got this primarily for the simpified Xinput/Dinput switching. In case anyone is interested, it will "generally" be exactly the same as a Xbox 360 controller in X mode, and in Windows it registers as a "Logitech Rumblepad 2" when in D mode. This is currently my primary controller ---> I do not like the shape. It is a tad large again, not as big as a 360 controller, but the hand grips are turned down instead of straigh off the bottom which is weird. It comes with it's own controller mapping software, so you don't need any additional programs such as Joy2key, Xpadder, etc. if you want to map keyboard controls to it.
Nintendo Wii remote with Nunchuk - Not just for Dolphin emulator anymore (which admittedly is why I got it in the first place) There is now a full custom driver to make it a regular controller in Windows. WiinUSoft (not Pro) can be found here:
http://www.wiinupro.com/downloads . This has generally limited utiility in standard PC gaming. It has some buttons a dpad an analog stick, etc that you can map to some game buttons. Generally only recommended if you already have one laying around for a Wii and you need a quick controller for some split screen action when a friend comes over. (No PC games can use the motion control aspect afaik) This custom driver makes it BOTH Dinput and Xinput as I recall as well.
Sony Playstation Portable (PSP)- Yes, the handheld console is my 4th controller. No longer needing any special or complicated tricks for several years now, you can simply update the system by running a file copied to your memory card from a PC and "jailbreak" the system, much like a phone, to be able to run any programs.
https://code.google.com/p/procfw/wiki/Installation . I have 2 different apps for it, one for using it as a wired controiller with a usb wire as the cable, and another to make it wireless using the wifi connection in my home going to the PC. Controller-wise, it is a Dinput style controller, and has all of the standard "issues" of the PSP as a controller itself. The dpad is so-so, the analog stick (only 1, just like Wii remote combo) is not "normal" like on a regular gamepad, and the face buttons are a bit recessed, it's a tad weird when they don't stan out from the controller face. Otherwise it works, but I generally only use it now as an emergency extra controller if I (almost never) am doing 4 player split-screen.
Overall verdict: The best controller is any Sony Playstation Dual Shock series controller. Yes, one that I didn't mention, nor currently own. Hands down they are the most comfortable, durable, best-size and shaped controllers generally available since their release part way through the PS1's lifespan. While they are Dinput by default, PS3/4 controiller drivers for Windows emulate Xinput already, and PS1/2 controllers (which need USB adapters) can emulate Xinput with the x360ce app available online. If I ever get another controller I'll probable get a Steam controller...BUT if I get another past that and didn't like Steams... I'll get a PS console controller. For now though, the Logitech F710 is sufficient, despite the wird handle shape.