This is a question that no one seems to get right, unless its fairly obvious. If they stole something, no brainer. If they sexually harassed an employee, should be a no brainer. And if the company is in a financially distressed position, it may be unpleasant to fire someone, but atleast its understandable. What if the company is healthy and employee did nothing obviously wrong?
Then I guess, you look at the quality of their work. But judging quality is subjective, and you're likely to have a sliding scale depending on employee's past experience and delta to their start date. And what about periodic reviews? What about quarterly objectives? What about what other employee's think? How long do you warn an employee before you go ahead with it?
I think one of the better ways of dealing with firing is how it was handled in grad school. At my school, you had a series of qualifying examinations and you had a committee. The rules were pretty clear: 2 chances to pass and if not, goodbye. One of the tests was an oral examination in front of the committee of 5. There weren't any clear answers, but the committee would convene and in an hour they'd have a decision with lots of feedback. I failed my first attempt. But guess what? After that, I honed in on their feedback, worked my fucking ass off and passed my second attempt with flying colors.
I don't see this happening at many (or any) companies. I'm not sure why, but IMHO employers use the "at will termination" too liberally. Either that, or they let the bad employees stay far too long. Sometimes I wonder if a second chance would help bubble good employees to the top when you had previously mis-classified them as bad or vice versa. Firing scares the shit out of people...why not make this process less of a surprise than it has to be.