Well-crafted villains have motivations, emotions, character. They have positive and negative qualities. They feel more real.
In contrast, many heroes are reacting to what the villain is doing. If the hero DOES have a personality beyond simply being "good" because somebody has to, then his own personality probably is going to be muffled (or, at least, not be so obvious) since he's playing against a generally more colorful and eccentric character.
I'm also just really, really sick of heroes being good for the sake of being good. You look at a movie like Watchmen, Goodfellas, Hero and Collateral and you'll won't find heroes and villains so much as characters. Sometimes one person is doing something "good," but it's usually for a personal reason, or because the hero is motivated by something he/she wants or feels.
Villains always shine in a morally black-and-white film because they have complex motivations and subtle (often malicious or duplicitous) personality traits. In Spider-Man, Peter just wants to live his life, get the girl and go to college. The Goblin is motivated by a growing insanity/dual personality as a result of an accident, and a desire to retain control on the enterprise he's given his life and sacrificed his relationship with his family to build up. See, Parker's a nice kid, but he's really just a reactionary force.