If I use the same email address to register at several sites that use Gravatar, is there a way to specify a different avatar for each site? Or do I have to use a different email address for each site?
With Gravatar you just add a new email to your account using sub-addressing and set up a new image attached with each of the different versions of the same email address.
E.g. Your base email address is firstname.lastname@example.org, with sub-addressing, this can become any of the following:
Set those up in Gravatar and use them to register for the various sites.
If you're using an email provider that allows sub-addressing (or plus-addressing if you're familiar with Gmail) and the site you register at allows you to use an email address with sub-addressing, this will definitely work.
Some sites will consider an email with a plus as invalid, so this won't work for them.