Interesting thread let me share my experiences.
First let me say that I may be a bit biased since I worked in the restaurant industry for 5 years (1st as a waiter and then as a bartender) while I got my bachelor's and masters.
I got paid 2.13 an hour when waiting tables. My weekly check after taxes/insurance was usually 10 dollars or less. It wasn't uncommon to not get a check at all. I never once got a raise because based on my employers logic if I deserved a raise I would make more in tips therefore negating his need to pay me more.
You must report at least 8% of your sales as income. If you made more then you were supposed to report it (tax fraud) if you made less over the course of the year you could try and fight it but that required very detailed daily records which most college students do not keep.
Whatever I made each night wasn't mine. I had to tip out 10% of my total tips to the busser and 1% of my sales to the bar. Every place is different but it is uncommon to find a restaurant where the waitstaff doesn't have to tip out somebody. Not to mention that most restaurants make their waitstaff do 1-2 hours of side/cut work before they can go home. During these hours you are not taking any new tables (just finishing off the ones you have) and are still getting paid 2.13
So for example if a party had a $100 tab and didn't tip me it actually cost me money to wait on them as that is $8 of taxable income and $1 of tip out. Thankfully, getting stiffed at the restaurant I worked at was rare, every waiter will get stiffed at some point. Sometimes it is your fault (we all have bad days/moments) and sometimes you just get unlucky and get a cheapskate or someone unfamiliar with tipping.
This isn't meant to be a sob story, obviously I didn't starve to death and there are advantages to working in the restaurant industry as a college student.
There are some truths to the post earlier about reading people. Waitstaff with experience become very good at that. I could bang out a thousand words on that easy but I don't want to bore you.
As for tipping guidelines here are few
Service is terrible = 0% and talk with a manager
Service is poor = 10%
Service is average =15%-18% (most menus will state the gratuity they charge for large parties that is a good baseline)
Service is good = 20%
Service is outstanding = more than 20%
Obviously this is just my personal range. I know people's views and expectations can change. But I highly recommend tipping at least the large party gratuity %age unless the service is poor)