Yes and No.
Some Heroes should kill, and some shouldn't. Every hero needs to be different.
Take Superman and Spawn for example: They are both awesome heroes, even though they are very different.
Superman's signature is that he does not kill the villians (only in the most extreme and desparate cases). That is what makes him who he is.
Spawn's signature is that he DOES kill the villians (more than once if he has 2 lol). That is what makes him who he is.
If both Spawn and Superman had the exact same morality and behavior, neither would be appealing, and they both would be nothing more than replicas of the other.
I beleive in variety. Every hero needs to be different, so does every villian. Not everything is black and white.