Please take these comments as information, I'm not targeting this towards Employee OR Employer.
1. Please find out why that employee is behaving like that in the first place. Read
his/her job profile history (you being an HR person should/will have access), may be he/she was a great person when they started & eventually turned to be like this. Many a time I have spoken to people like them & eventually realized Mangement was greatly responsible in NOT recognizing their work which ended having a disgruntled employee. With that said, do you blame this person now? In short, find the ROOT CAUSE. Take this person into confidence, make them feel comfortable, then you will realize HOW MANY mistakes Management makes which leads to employees like him/her. I'm saying this based on past experience.
2. At times they are upset b'cos they think they are NOT challenged based on their capability & have to work with Junior people. Believe me NOT everybody likes to work with Junior people & train them (for whatever reason, please accept that FACT). People like them want to work in CHALLENGING environment, see if you can bring them to that team, they will produce wonders.
3. With above 2 points said, SET Goal for these people (this is management's Job) with reasonable expectations. Once you set the GOAL, ball is on the employees court to show the excellence. Now if this person DOES not perform, you have all the reason & proof to cut loose this employee.