Suggestion:
I consider tipping to be a part of the expense of dining - bad service bothers me, but not tipping also bothers me, as I don't feel like I've paid for my meal.
So I've come up with a compromise with myself, which I think will be helpful for anybody else in the same boat:
If I get bad service, I won't tip (or tip less, depending on how bad the service is). But I -will- set aside what I -would- have tipped, which will be added to the tip the next time I receive good service.
Double bonus: When I get bad service at very nice restaurants, the waiter at the Steak and Shake I more regularly eat at (it's my favored place to eat) is going to get an absurdly large tip, which amuses me to no end.
If it's worth saying, but not worth its own post, even in Discussion, it goes here.