When is it appropriate to fire a customer? It is a question most small business owners face and it isn't an easy one. There are a few factors to consider: how much revenue does the customer bring in? How much of the business' time do they take? If you have this information, you can calculate the hourly rate the customer merits which you can then compare to other customers. If the rates very significantly (the customer takes up much more time per dollar of sales than your typical customer) that may justify letting them go.
Another factor to consider is what revenue this client may generate for the business in the future. If the client is apt to grow and need additional services down the road, it may be worth dealing with a lower ROI in the present. If their need for your services is likely to remain the same, you may find it best to end the relationship.
One further thing to consider is the customer's influence in the community. A business doesn't want to be held hostage, but it may pay to be practical and stay on the good side of a community benefactor. Consider the goodwill this customer may bring as a marketing cost to lessen the sting!
There was an interesting article on calculating the lifetime cost of a customer. Check out this article: http://www.entrepreneur.com/article/224153
If you do decide to end a relationship with a client, try to make it as pleasant as possible. Don't make things personal and don't get emotional. Do end things in person if possible and offer to help with the transition if you are a service provider.