A villain can be great if written right, but I believe it is important to give them motivations for what they do. Sometimes you can have great villains who are evil for the sake of being evil or chaotic (The Joker and Kefka come to mind) but the really truly great villains are ones who see themselves and their motivations as heroic. I'll move to TV for a moment and point to Marcus Crassus from the final season of the Spartacus TV show. He's obviously cast as the villain, and yet he sees himself the defender of Rome, the only man capable of putting down the slave rebellion sparked by Spartacus and the man that, in putting down the rebellion, can save the empire from future recurrences of like event. The show does a great job in showing several nuances of the man; he's a loving but incredibly tough father, a brutal leader but one that expects honest assessment of his enemies absent embellishment or overconfidence, and a man driven by a quest to test himself against one of the greatest warriors the Roman Republic knows but also a man who has no desire for titles or positions that he has not earned.
Doesn't sound like a straight up villain. Certainly he has plenty that can make us revile him, but in certain ways the show does a good job of displaying his humanity and humility alongside his brutality and questionable morals. The villain should be layered like an onion. At times you should question whether he's truly a villain, and at times you should wish his untimely demise, but he should be an equal to the hero in terms of successes and failures to really give for an epic story where you can not really predict the outcome. Hard to strive for, but still, hope that helped some.