A good villain is someone who taxes the hero to his or her fullest. A villain can be one dimensional, two dimensional or three dimensional in characterization, if you like, but if he or she doesn't challenge the hero, the villain is not doing his or her job.