I have a rubric and after I have evaluated the performance of the server I adjust for the event and my general mood.
Here's an example.
Base tip: 15%
Event:
Proms, anniversaries, etc. affect my mood and I expect to have a good time. On a special occasion I tend to spend freely so the base tip is modified to 20-25%. Additionally, special event rules go into effect (detailed below).
Mood:
When I'm in a good mood, I tend to lean towards a 20% base tip. If an event has already modified the tip, I add 5% (to a maximum of 30%).
Important tasks:
The waiter must satisfy me. I expect the following:
[list=1][*]Prompt service (adjusted for how crowded the restaurant is)[*]Polite service[*]Drink refills[*]Prompt ticket delivery and service[/list]
Drink refills:
Lately this is the single most important modifier to my tip, as I've had a string of servers that feel like refilling my drink is an option. First, I should never have to ask to have my drink refilled, monitoring your customer is a task of the server. Second, refills should come before I run out of beverage and have to move my drink to the corner of the table.
Prompt refill service can increase the tip.
If refills come without asking but are slightly late, no modification is made to the tip (subject to my mood and how busy the restaurant seems).
If I have to move my drink to get a refill, any "good mood" or "event" modifiers are dropped.
If I have to flag a server down to get a refill, the tip is reduced to no larger than 10%.
If my date does not get a refill on time, the tip is reduced to no larger than 10% and special "bad service" rules apply.
Ticket service:
I expect the "here's your ticket, thank you for your payment I'll be right back with your card" process to take no more than 10 minutes. This can ruin the tip.
Event/Mood Rules
When I am in a good mood, at a special event, and the service is at least average, I tend to tip very high. 50% tips and higher are not uncommon, particularly in the event of good service. One of my favorite methods of tipping involves rounding high up, depending on what cash I have. If the meal was $30 I might just leave $45 in cash.
Bad Service Rules
If the service is bad, particularly when I can see the server spending oodles of time at tables where friends/large groups are sitting, I start to be a jerk. Effects range from no tip to a list of infractions on the back of the receipt.
Prior Service
Some restaurants have a history of bad service. At these restaurants, if I receive passable service I tip as if it were exceptional service at a better restaurant. For example, at a restaurant where I usually have to ask for refills I will tip high even if the server is late with unrequested refills. I do not penalize based on this rule; that is I do not give an additional penalty for bad service at a restaurant where I usually get good service.
All in all it works well. Generally I am a high tipper because most servers do well. At restaurants where the servers don't change frequently (like my local Chinese eatery) I have found the quality of my service is exceptional since they recognize me as a good tipper.