Well obviously you could use any old PC gamepad to work with the C64 emulator (assuming the emulator supports it). If you want to get crazy and use a real commodore 64 joystick, well... Hmmm... I grew up on Commodore 64 and I don't honestly recall them having a joystick to call their own because generic Atari joysticks worked just fine. Original Atari joysticks

were pretty poor because I always found that they would wear out or little parts would break.
When I first got this joystick:

I had no idea what I was getting: the PERFECT joystick. I beat the cr-- out of these things for probably 15 years on my Atari, Commodore, Amiga computers. Every 5 years or so the contacts would start to lose their conductivity, so I would take it apart and use an eraser on the the burly metal contacts. The only one that I ever saw stop working was one that I twisted, turned, wrenched, cranked, and jumped on until the handle finally busted. Great joystick.
As far as finding one, I don't know if I can help you - but if you find a used one it's probly as good as new.
As far as interfacing it to the computer... Hmm.... Any of the methods described on this site will work wonderfully: Keyboard hack, PC gamepad hack, IPac, (etc)...
Also, a Sega Genesis controller worked on the commodore 64 and it had the same connector, so if you could find a good Genesis controller-to-PC hack it would work the same for the commodore 64 (the only difference is you have only 1 button to worry about). I think I read about some parrallel port hacks with drivers.