The really good characters are an interesting mix of good and evil. These are the ones you can't predict. The ones who could go either way. For my money, the best example of this is Severus Snape from the Harry Potter series.
I like characters like Snape where you can see the obvious "trait" but where they can still keep you guessing. Are they really the villain or are they putting up a front to shield someone else?