In Hollywood, nobody has more fun than a murdering lunatic. Whether you're the Joker, Hannibal Lecter, the Sheriff of Nottingham or Scar from The Lion King, you're typically the most erudite, charming and interesting person in the room.
Moviemakers love the idea of a sociopath brutally murdering people one minute and making hilarious observational comments the next, so it comes as no surprise that these characters are often times the most endearing people in the entire damn film. They even went so far as to essentially turn Hannibal into a Batman-like vigilante in Hannibal Rising, fully embracing the fact that every audience was going to root for him anyway.
Then, Showtime took the next logical step and cast a sociopath as the hero in Dexter.
Why It's Bullshit:
First, in movies the terms "psychotic" and "sociopath" are traded more often than genital infections at Flava Flav's house. But psychotic behavior is when someone attacks the mayor because Satan appeared on a box of Crunch Berries and told them to do it. Sociopathic behavior is when someone lies, doesn't feel bad about it and can't understand why anyone else would.
People who suffer from anti-social personality disorder (the closest thing in real life to a Hollywood "sociopath") almost always come from backgrounds where they're barely given enough to eat, let alone a well-rounded cultural education. Generally speaking, they aren't charming, aren't educated, aren't even particularly bright and couldn't come up with a devious scheme to save their boring ass lives. Most of them aren't even violent.
And it's actually pretty hard to rise to the top of your field if you have the typical sociopath's problems relating to other human beings. Yes, even in politics. So while Hannibal Lecter is a world-class sophisticate, a brilliant doctor and the epitome of old world charm and grace, the average real world sociopath is an isolated failure that spends his lunch breaks from Pizza Hut scribbling obscenities on the condom machine in the bathroom at the Shell station.