Selfishness is like many things, in appropriate doses it can be beneficial, but taken to excess can be damaging.
Humans have got to where we are today because of selfishness. It's a natural trait, all animals display it. A squirrel hoards nuts for their own survival, not for the good of all squirrelkind.
I also think that criticism of selfishness in others is a form of selfishness in itself. It's clear hypocrisy. "You shouldn't have taken the last chocolate because I wanted it."
Selfishness is inherent in all actions. Even actions we do for the good of others are to some extent selfish because they make us feel good and make us feel like we are doing the right thing. People like Mother Theresa were incredibly selfish individuals, they chose a life of poverty and service to others in the belief that they would get a greater reward in the afterlife. It's the same logic, albeit the scale of fucked up-ness is different, that Islamic suicide bombers use.
There was a BBC report earlier this week where police labelled drivers "selfish" for doing ridiculous speeds of 150mph+. Yes, the drivers are selfish, but so are the police, because they want others to behave in a manner that conforms to their own expecations (and the law). So do the rest of us. Me being shocked at someone bombing round the M25 at 150mph (on a motorbike, obviously, a car wouldn't have much chance of getting up to that speed on the M25) is a form of selfishness because the rider isn't keeping to the limit I expect them to.
The key is to moderate selfishness and use it appropriately. At least, that's my own selfish point of view.