The Star Trek episode "The Enemy Within" gave a plausible answer to this, which gibes with my experience. To really get things done, you need assholes, and you need to be somewhat of an asshole. The meek, non-asshole "Good Kirk" was too weak to lead, while the psychopathic asshole "Bad Kirk" was too aggressive. But the idea that assholes should be exorcised from communities because, for example, they make women run away is just not a persuasive argument. Study the history of great minds and men (yes, almost all men) and you will find assholes everywhere. This is an aspect of our modern culture that I profoundly despise and disagree with: the hostility to conflict and abrasive people. It seems to me to be essentially a celebration of mediocrity. High functioning assholes are the intellectual equivalents of lions hunting infirm gazelles; rather than exorcise them, perhaps we need more of them to prevent mediocrity, stagnation and groupthink.
We might be using different definitions. It's OK to break a few eggs to make an omelette, it's not OK to break a few eggs just for the fun of breaking eggs. I'm pretty sure it's the second kind of people that is usually termed an asshole.
http://blip.tv/tech-love-live/osb09-donnie-berkholz-assholes-are-killing-your-project-2464449
This is specifically about why it's important to get assholes out of open source projects, but it applies in general. It includes an analysis of the social cost of keeping people around who frequently make other people unhappy, and in particular a way to balance the social costs (distraction, people doing much less work or leaving, useful volunteers not joining, assholes recruiting other assholes, etc.) of assholes against the useful work some of them do.