As a few have quite correctly stated, it is primarily due to people not tipping correctly. Remember, wait staff are taxed on the assumption that their base pay, plus tips will equal minimum wage. When they get stiffed, they are paying taxes out of their other earnings.
The sad truth is that while many people SAY they tip x%, many rarely do. I waited table for 3 years while in college so unfortunately, I know from experience. Forget a draft, I say everyone should have to work retail for 2 years as a civic duty. Waiters can always spot previous waiters, they treat them like normal people instead of servants.
The OP mentions that she wants to tip only what she feels is due. Unfortunately there are too many variables for this logic. The waiter is not in control of the customers'; feelings, how their day went, the cooks, management, how your kids are behaving, weather or any of the myriad of other things that could affect how someone deems their meal went.
No offense to the OP, but a table with 6 kids under the age of 7 is pretty much every waiter's worst nightmare. (No one ordering entrees, special orders for everyone and the unholy mess that many parents feel it is their right to leave behind.) Believe me, they are earning their measly 15%! Ask any waiter which they would rather wait on, a table of two risking a tip of whatever amount, or a table of 8 with 6 kids under the age of 7 with a lock on 15%. Not many, if any, will pick the 8-top full of kiddos.