Well, a good villain in my definition would be someone who affects in such a way that would appeal to the reader/watcher/etc. As listed earlier, the Joker is an excellent villain partially because of what he says in the movie. "This is what happens when an unstoppable force meets an immovable object". This analogy that the Joker makes is known as a paradox, if you didn't know already and often paradoxes, if worked certain ways, can do some serious (or in the Joker's case, "not so serious") work on the reader. In general, a villain must be the person that attempts to cause the reader or watcher (or whatever) to question his or her beliefs and virtues, because if that villain does so, the author or writer has succeeded in making a memorable villain. Even if there is no villain and the opposing force the protagonist himself or a turn of events (protagonist vs. self or protagonist vs. nature, etc.), the opposing force must have that kind of affect on the reader. However, you may realize that not all villains turn out to be so life-altering in the end. Some of these villains may become good before they can have any effect on the readers and others may be pushovers or weaklings that are dependent on the power that they received out of treacherous or other villainous acts.