Steam does have voice chat support, though I've never used it. Should work ingame. Not sure of its quality, however. Popular voice chat software include ventrilo (what I use), teamspeak, and mumble. I think you can set up free servers for them all, though only know that's possible for ventrilo for sure. Skype is alright too, though I don't know if you can do use a button to activate voicechat. Personally I don't like "always on" voice chat, because sometimes you have talk to someone in real life, burp, or what have you haha.
Don't know much about hardware. There are plenty of standalone mics. Just find a well-rated one on Newegg.