In my experience, most people who are fired are not unskilled or incompetent.
They may be in the wrong job, which means there's a poor fit between the skills, domain knowledge, preferences, and qualities needed to be successful and those of the individual. As likely, the person doesn't fit in -- there's a poor match between the values, beliefs, and assumptions that perdominate in the organization and those of the individual.
I'm not saying that some people shouldn't be fired. There are people who, for various reasons, won't (or can't) manage themselves well enough to make a positive contribution. When someone doesn't have the skills to be successful (or can't develop them in the time needed), that person needs to go somewhere else, either within the company if there's another place where they can contribute, or to another company. People who don't fit the culture probably need to move, too. Culture is incredibly stable in organizations, and one person swimming against the tide usually makes himself miserable and isn't particularly effective (although I think it's worth looking at what you can learn from the perspective of a cultural outsider to shake up your assumptions).
Note that none of these equate to "bad person."
But somehow that's what often comes across when people are fired. I've heard too many stories about people who were blamed, belittled, humiliated, or verbally abused when they were fired.
If the manager been doing his/her job, people know what they need to do to be successful, and know what they need to change to be successuful. And if those to things don't match up, it's the manager's job to move people on without making it a humiliating experience.
When someone doesn't have the appropriate skills or is a poor cultural fit, it's usually indiciative of a problem with the hiring process, not the individual. So why take it out on the individual? Blame and shame doesn't help either the person being fired or the person doing the firing.