Tipping should be reserved for good service and there should not be any expectation of percentage.  At the same time if a customer knows that tipping is expected they should at least give a token amount always except for when the service is subpar.