Dukat isn't a great character because he's a sociopath, he's a great character because of the way he talks the talk of a tragic hero and kind of almost convinces you he's not a sociopath, if you stop paying attention to his actions.
It's not flaws that make a character great. It's the greater picture of the character, the pattern of behavior that in one situation is a virtue and in another situation is a flaw. It's what makes a character different and unique, known but unpredictable, as if they're a real person and you can't wait to see what they'll do next.
Picard by his age and old school intellectual aloofness makes him different from any other scifi hero, but nobody but Stewart could have made it work. Imagine anyone else sounding cool ordering earl grey tea.