Depends what my team is. OFten I'll go Medic, because Medic is useful regardless of what the rest of your team is, and a blutsauce kill on anyone is super satisfying.
Pyro with degreaser/axtinguisher makes 1 second kills on anything except overhealed heavies easy, which is nice.
Engineer is pretty straightforward, though using the gunslinger and being and combat engi has a really weird effectiveness to it that I like.
Heavy with a Brass Beast can be a better deep base defence then a level 3 sentry when the Heavy knows what they're doing, and the Tomislav is as brutal to unsepecting players as an expert Pyro. Heavy may be a simple class, but it is painfully effective.
The Force a Nature remains one of the most fun weapons to use. Unloading a clip into a Heavy and seeing him flung into an abyss beyond the stage is incredible.
Soldier is perhaps the most versatile class in the game. The normal rocket launcher is a pretty spiffy weapon, and there's lots of reasonable side grades available; the Black Box works well when you don't have a pocket medic, if you are very accurate, Direct Hit works well (sadly, most people using it aren't accurate at all), and the Liberty Launcher is a straight out upgrade.
Demoman is fun, but I much prefer the vanilla grenade launcher/stickybomb launcher/bottle(frying pan) setup to any of the demoknight sets. Don't care how many heads you have, my stickybombs turn you and 4 teammates into gibblets much faster than anything you can do.
Team Fortress is a team game. You need to be versatile to play it well, and that means playing several classes. Spy is fun and all, but I'm not a good spy so I don't play it outside of instaspawn pub games. Sniper isn't a bad class either, though most Snipers turn into weighted companion snipers, taking potshots at enemy snipers on the other side of the map and not twitching their aim towards other targets. I'm not accurate as a sniper and I'm not good at moving around the map as one, so I avoid it.