Leon Wieseltier sings the praises of The Sopranos:
The only innocent in the show that I remember (who can forget her?) is Tracee, the young, unsiliconed, and doomed stripper; and the only pure villain, beside whom even that cocksucker Leotardo looks complicated, is Livia Soprano, the demon-mother who sets the saga in motion but is its least explored figure. Otherwise there are no heroes and no villains: there are good people who sometimes do bad things and bad people who sometimes do good things.
I think this "ooo, shades of gray!" reading of the show was natural, initially, but would have made for an extremely trite show were it to continue for seasons and seasons. By the end, I think it's clear that this is all backwards -- for the core characters, at least, there's no gray at all. These are bad people. Evil people, really. Not just people who do bad things. But people who do bad things, confront the fact that the things they're doing are bad, semi-seriously wrestle with the idea of not doing them anymore, and then deciding to keep on doing them.
What's true is that at the same time as these are evil characters, they're also complicated characters -- characters with real depth, real feelings, real idiosyncrasies, and even some real virtues. The show makes us confront our own voyeuristic fascination with them, and it also makes us sympathize with them. We sympathize, however, not because they aren't bad people, but because we aren't bad people and bad as the bad people may be, they're still people and we, as good people, recognize a common thread of shared humanity between us. The fact that Tony Soprano isn't a cartoonish villain doesn't mean he's not a villain.