In many locations, tips are not only for the waitstaff, but are actually shared with the busboys, the bartender, and sometimes other members of the staff - usually not the cooks, but even occasionally then.
They're also a significant fraction of their wages, most waiters earning a few dollars an hour "plus tips" rather than a full, normal wage. When I worked in college at a local breakfast/diner place, low prices but high table turn, I usually pulled $10-$15 an hour in tips, and $3.15 an hour in wages (IL minimum wage at the time), for example, and gave 25% of that to the bartender and the busboys (15% and 10% if I recall).
Tipping zero or near-zero, especially if you're obviously not American, will accomplish nothing other than make them think you're a foreigner with no idea of our customs.
Instead, tip at the low end of your comfort zone - for me that's dead minimum 10%, most of the time 20% with average to good service - and leave a comment with the waiter or the manager, depending on what the problem was, if it was significant enough to justify doing so. If the waiter was simply inattentive, letting him know may be actually helpful to him in the future. If the waiter was rude or otherwise you aren't comfortable talking to him, letting the manager know is helpful; be aware that if you do it in person prior to paying, it sends a signal you expect some compensation, so often doing it after you've paid is better.
As a former waiter myself, I definitely would've appreciated being let know if I wasn't sufficiently attentive to a table - and most of the time I probably knew already. I was fairly good at my job, usually receiving among the highest percentage in tips of the restaurants I worked at (after the first one), but I still had tables I made mistakes at, days I wasn't as on top of things, or otherwise had issues. A quick:
Hey, thanks for serving me today. Don't worry about the iced tea I asked for.
is a pretty non-confrontational way of reminding the waiter he didn't do something you asked for.