As charmtrap wrote, "morality" implies a social interest above a personal interest. Sure we all have an interest in fulfilling our own immediate desires; but we also as a species seem to have, to varying degrees, a desire/interest in furthering the interests of groups with whom we've associated ourselves, whether it be the family, the tribe, the nation, etc. Most of us innately balance these interests--our immediate personal interests with those less immediate--though this is not always the case, i.e., socipaths; though how we weigh these various interests varies from person to person and from circumstance to circumstance.
As to why this should be the case, I believe it is explained quite satisfactorily within a sociobiological framework. When you get down to it, I think that all ethical impulses in humans can be tied back to the empathic sense, which I think is most likely an evolved one. I should add that the variability with which people seem to approach these issues is evidence for its evolution, in my view.
Then, too, to take you kleptomaniac example, perhaps the kleptomaniac refrains from stealing not out of any moral/empathic impulse, but simply out of fear of getting caught and punished. Though this rationale is quite arguably not one based in ethical considerations, it (group censure/punishment) is a powerful check on behaviors which are deleterious to the well-being of the group, and it can be explained in a sociobiological framework as well.