While I'm a die-hard romantic, I utterly agree that a villain can make or break a book. Whether it's a real character or a set of circumstances, or a flaw deep within ourselves, there have to be obstacles, or the happy ending doesn't mean much. And when I look at books and/or movies I love, often it's the villains that truly stay with me. Who didn't love Alan Rickman as the Sheriff of Nottingham in Robin Hood, Prince of Thieves? (Or in Die Hard, or Sweeney Todd, or in Quigley Down Under, for that matter? --I'll admit to a teensy crush here on my favorite bad-guy actor) or another favorite of mine, John Malkovich in Dangerous Liaisons? Arnold Schwartnegger in the first Terminator movie? Darth Vader in the original Star Wars? Weren't we all at least reluctantly impressed by Anthony Hopkins as Hannibal Lechter? Especially at the end where he tells Clarice that he has no intention of coming after her. That reaffirms the concept that he's three dimensional. Somewhere in his twisted mind, there is room for the concept of "The world is a better place with you in it." (apologies if quote is bit off.)
A really good villain will have readers/viewers identifying, just a little, letting us tap into our own wicked side. He or she can be witty, making us laugh, even while we cringe in terror at the danger presented to our hero and heroine. Perhaps he's handsome and compelling, like Dracula, or hideous like Freddy Kruger, but note that with both of those, the villian is the main character of the piece, the star of the show. Paper-thin bad guys, with no appeal, no charisma, no depth, make for a story that just doesn't stick in our minds. It's true that as writers, we need to put as much effort into our antagonists as into our heroes. The hero/heroine need a worthy opponent, or their success simply isn't as impressive. So whether it's an internal demon or a fanged and cloaked one, a top-rate villian is the hallmark of a good story.