In the later seasons they seem to have headed toward what Mister Fandago is describing. But I really preferred the earlier take on Dexter in that his choice of victims was not based on any moral judgement whatsoever but solely because they fit within the guidelines of his code. He didn't kill people because they were bad and needed to be punished. He killed people because he got off on it.
He had that code beaten into his head so much by his father that he never strayed from it. The code made it more difficult for him to be caught (as opposed to just killing random people on the street which would have gotten him caught quicker) and therefore allowed him to continue to kill. He enjoys killing so he stuck to the code.
But after a while they needed to develop the character so they got away from that and he started to become more like what MF describes. Which is probably for the best but I always thought it was an interesting idea to have an evil, murdering psychopath as a protagonist who just happened to arbitrarily take on the role of a more traditional protagonist.