I'd say the primary reasons I have had to let people go (not in any specific order) are:
1. Repetitive performance issues, and the inability to find them a good home in the company where they would succeed.
2. Poor Attitude or bad team fit.
3. Inability for the person to grow with the organization which typically leads to being a bad team fit as the company grows.
4. Lack of funds