I used to be OMGENGINEER! Loved Engineer, I was a master of building mechanics, being as much of a help to my team as possible, etc. I still really enjoy it, because whether you're offense or defense, your team really can benefit greatly from at least one engineer. In fact, that statement really can be made about every class.
But, lately, I've been loving the spy. I was playing at a friend's house yesterday. Stage 2 of dustbowl on defense, I was hiding with my back against the wall where the enemy was about to come out on the far right (facing their spawn), with that little board divider on my left. A medic and pyro came out, ready to deploy an uber (saw the lightning coming from the ubergun), and I ran up behind them, poked the medic, poked the pyro. I literally could not help but shout at my screen, a la Seinfeld's Soup Nazi, "NO UBER FOR YOU!"
Knowing that a couple quick flicks of the knife can really gimp an entire team's big push like that is really a huge rush. Taking them out kept our guns on the point up, and we didn't lose that point.
So, I don't know. I guess since I've got way more play time in as engi, and since I am probably a better engi (compared to other engis) than I am spy (compared to other spies), I have to go with engi.