I think a good villain characteristic (or flaw) is jealousy. The best one that I know of is Scar from The Lion King. He will forever be one of my absolute favourite villains. He was witty, sarcastic, extremely jealous of his brother, and definitely knew what he could and could not do in terms of getting what he wants (i.e. no fighting for the kingdom because he knew his brother was way stronger than he was). Also, a lack of remorse for what they did until they are about to die is a really awesome trait to have for a villain -makes you hate them more and you really cheer for the hero/heroine when the villain is finally defeated.
Overall, if the villain has a personality and a background/history for why they are evil, they usually work really well. Some villains may seem too evil and one-sided on paper but when you bring them to life, like The Joker from Batman, they draw you right into the story and you are biting your fingernails each time they make an appearance.