Since Team Fortress 2 is essentially a 9-option game of rock-paper-scissors, I try to avoid or make up for imbalance by filling in the underused classes rather than diving for the positions I'd prefer to have. That said, I'm not to the point of completely pwning n00bs on servers yet, but I've had some pretty good games.
As for the classes I like: On the CP maps, where progression isn't so linear, I prefer the pyro. It's easy to take alternate routes to circumvent big bottlenecks and ambush clusters at close range. I just finished a fun round doing just that. Unfortunately, we lost; the Heavy with the 750ms ping didn't help much.
On 2fort, when we have enough engineers, I'll be a scout. He packs a punch and is good at fleeing firefights quickly if needed. I can bob and weave around the slower classes and usually take a few out on my way to the intelligence.
I also think I'm a good medic, but that being a good medic doesn't take much -- all you need to do is anticipate where the attacks will come from and position yourself oppositely. And the correct deployment of ubercharges. It's a boring class but an extremely valuable one.