Everyone loves a hero, like Hercules or Superman, who is pure of heart, fights for the good of everyone and always prevails. However, over time these types of characters can become mundane, their victories predictable and hollow. The audience knows the hero can never be defeated so they yearn for more to sink their teeth into. Enter the anti-hero.
I think the anti-hero is a tough nut to crack but if done correctly, they become some of the more memorable characters.