My favorite is the Joker. The way he thinks about people, that everyone is a monster, is something very compelling. That nihilistic view of the world, that nothing matters, is just pure villain material. For the Joker, life doesn't matter. If he gets killed his point is proven. He thrives on violence and aggression, how could Batman fight someone like him? The fact that he is defeated at the end of TDK by the very people he is trying to twist in his own machinations is great. And Batman's victory, though bittersweet, is very noble because, instead of going to try to sneak on the boats to disable the bombs, he believes that the people will do the right thing, he only has to stop the Joker. There are many more things why I believe he is the best villian, but that's talk for another day.
However, Bane is totally different from the Joker, but formidable in the almost the same amount. Whereas the Joker is the total opposite of Batman (Order vs Chaos, One disguised as a frightful figure who does good things, another disguised as a amiable character who does bad things, etc), Bane is an evil version of Batman himself. Being extremely intelligent, a capable fighter, he asks the question: What would Batman do if he was "evil"? It is even iteralized on film, using Bruce Wayne's equipment to bring down Gotham, being the successor of Ra's Al Ghul in the League of Shadows in the place of Bruce, and so on.
As for Bane's motivation on film, I'm on the opinion that Bane did it for fulfilling the League of Shadows purposes and to aid Talia. He loved her (though not in the romantic way many people view the relationship), and was willing to die for the cause (I think both Talia and Bane were , and everyone in the League of Shadows for that matter). Also, he was part of the League of Shadows, it is obvious that he must have know what their goals were, and he agreed to them.
So all in all, both very compelling characters on their own, it is just a matter of preference.