One of my GMs (thankfully I don't have to GM all the time anymore) makes the most compelling villains.
The thing is, they don't really engage in Card Carrying Villain behavior. And when they Kick the Dog it's not obvious. He plays them so well you get these intense passionate feelings about these NPCs.
Like, in one game we're fighting Gem Named Demons. Diamond was an absolute monster in combat. He was also the closest thing to a real monster in terms of personality. Sapphire was a manipulative bitch. But guess what, when Diamond hit Sapphire in front of the party,
everyone wanted to disembowel Diamond and all the sympathy went to Sapphire. Why were we even giving her sympathy at all? Because the GM is just that good at making the NPCs
real.
Drawing out the feelings and emotions of your players is about having them treat the game as real and eliciting emotional responses from the same stimuli that they would react to in real life. Having an NPC act like a bitch and engage in "normal" social behavior that everyone would find abhorrent elicits a stronger reaction than just having her eat a puppy or something. We all know someone like that, we all have a built in reaction to that kind of behavior. I don't know about you but I've never seen anyone eat a puppy before and I'm hesitent to let my imagination process it too much because I really don't want to picture it. The impact is significantly lessened unless the GM goes to great pains to describe everything, and then you're more into Squick than anger and it defeats the point.
The only thing that kept us from cheering when Diamond was finally slain, was that the GMPC made a Heroic Sacrifice to do it. I gave the character my character's last re-roll in an epic all out battle with the demons the group was not prepared for or strong enough to deal with to give him a slightly better chance at surviving his Sacrifice. He had like, a 3/64 chance of rolling well enough to live. And you know what? He made it on my reroll. And I know there's a big stigma against GMPCs, but again, he does it
so well.
Anyhow, it's about making the NPCs real. And one of the best ways to do that, and anyone who writes knows this one, is to
Show, Don't Tell. The characters need to interact with the villains and more than just as rivals. You could get into an
Enemy Mine situation to give the heroes a better chance of really interacting with the villains. Coincidentally that was how that epic battle I mentioned started. It began with an Enemy Mine and ended when one of our players said something stupid and canceled the truce early and the demons leaped on us like a pack of ravenous wolves.