Ultrastick 360 is the obvious choice! MAME automatically maps it for 2-way, 4-way, e.t.c. (except Q-Bert), you can manually change the maps if you want to and it is recognized as an analog PC joystick so you can use it with any software that supports joysticks.
You can connect up to 8 physical buttons on it without any extra circuity and you can have a total of 15 different buttons (the 8th button acts as "shift" so shift + button1 = button 9).