You'll need a nice arcade-style microswitch controller. I got one
from adafruit. You'll want a button. I also got it
from adafruit. You'll want an enclosure of some sort. I had one lying around that I had picked up from Radio Shack a while back. Just make sure it's big enough. If you're good with wood you should make a nice enclosure yourself. I'm not, so I stuck with plastic. You'll also want a DB-9 cable — I salvaged one from a new incarnation of an Atari 2600 controller. I couldn't bring myself to destroy a classic one, so I took apart one that came with an Atari Flashback I got for $10 or so. The upside is that the cable is shaped to lock into an enclosure and prevent damage from pulls. Also, there's an Atari logo on it. You could make your own using an ethernet cable, one or more DB-9 plugs and hoods. You'll want a multimeter to do continuity testing.
Not pictured are some other requirements like wire strippers, soldering iron, extra wiring, a Dremel, a drill, some nuts and bolts (#10 size works ok with the joystick I'm using), etc. You'll figure it out.
NOTE: if you do use a salvaged controller cable, keep in mind that it matters where you get it from. If plan on adding a paddle (not covered here), a cable from a normal joystick will not work. Likewise, pulling one from a paddle will probably not work if you plan to make a normal joystick, though I don't have a paddle to check. This is all because the paddles use pins 5, 7 and 9 which aren't used on a normal joystick. If you're interested in making a combo controller, pin 5 is B pot input, 7 is +5V and 9 is A pot input.