I always go medic unless there are too many on my team already (there almost never is). I love being able to help out the guys that do the most damage so they can do even more damage. I also love the vampire gun they got in the first update. I've learned to be a pretty effective combat medic. No one really expects to be killed by a medic, and pyros and spys rarely stand a chance against me. It's really funny having a pyro set me on fire but failing to finish the job. They will usually give chase, but I'll be backpedaling while leeching away his health and they will die with me at full HP.
Spys are a bit harder to kill, but since my focus isn't the front of the battle as much as the people on the front, I have a much better chance of spotting them first. Worst case scenario, I can usually shout over the VoIP what class the spy is pretending to be.