Griffith is one of the best. Light was pretty good too, especially since he was also the protagonist.
The difference between villains and anti-heroes is quite simple: evil vs good. An anti-hero may be hard to like sometimes, but you can't deny the merit of their actions and goals, while a villain may sometimes make you wish they'd just be good, but inevitably their actions are unforgivable. Lelouche wasn't a villain; he could be arrogant, but his objectives were noble and he always held true to them. Light Yagami was a smart, bored, egomaniac that got too powerful, nothing heroic about him. Sure, he killed bad guys, but he was never really heroic when doing so, and he killed innocents just as easily and not for a greater purpose, but just to save himself.