I can't believe this thread has three pages of responses. I'm impressed. I usually tip $2 - $3. 20% seems high. Compared to a waiter, a pizza delivery guy is doing one task, once. A waiter or waitress is tending to your table for an hour or more. Plus, they split their tips with the bussers. But I do get the paying for their own gas thing.
Here's a related question: when you go to a place like Homemade Pizza where you get a raw pizza to bake at home, and you're picking it up yourself, how much do you tip? It's awkward if you pay with a credit card and leave the tip line blank, but if you're picking it up and baking it yourself, do you need to leave a tip?