When this happens, ideally you'd like to give something untraceably cheap. Craft fairs are perfect for this: a festive hand-crocheted TP roll cover with a reindeer head on top might have cost far more than the $10 coffee shop gift card the recipient would have preferred....they just don't know. Also, you can't return gifts from craft fairs. If you don't have time to go to an actual craft fair, use regretsy.com as a shopping site instead of just hitting it once a day to laugh at Etsy's most misguided crafters.
If you yourself are actually a crafter, for heaven's sake don't give this person something you made. Especially if you're a knitter. Hand-knitted items require time, skill, and (for all the knitters I know personally) vast quantities of beautiful yarn and should go to someone who will appreciate them (me, for instance). If you must give something made with your own hands, give baked goods, which take only an afternoon. Or less than that, if you make cookies with the pre-made dough from the refrigerated section. There was a trend a few years back to give "gifts in a jar," where you whipped up your own mix and packaged it in a cute jar with ribbons and instructions. What could possibly be easier than to buy a brownie mix, dump it into a jar, write the instructions on an index card, and stick a ribbon on top?
A photo gift is another way to be creative and personal in your passive-aggression. Ordinarily, if you give photos as a gift, you're giving pictures of someone or something you think the recipient will like looking at. If you're giving to someone you dislike, take a walk around your neighborhood with your camera and think carefully about framing. Perhaps you can get a picture of Minnehaha Falls but with a kid picking his nose in the bottom left corner. Or a shot of some lovely historic landmark where the only thing truly in focus is the heap of dirty snow out front. Once you're satisfied with your work, take a look at all the ways you could showcase your talent. A mouse pad? A keepsake box? A 20"x30" wall poster?
Books are always a good gift, and if you dislike the recipient, you're relieved of the hardest part of buying a book for someone, which is selecting a title they'll enjoy reading. The perfect book for the person you hate is the sort of ponderous, weighty hardcover that everyone is supposed to want to read (because it's "important" or "beautifully written") but most people just leave on the shelf forever (because it's also "boring" or "depressing as hell.") If they actually like books like that, get them Kardashian Konfidential or that book by Sarah Palin. Forget to include the gift receipt.
The ultimate gift for the person who complains about everything else is a gift card. Ideally, when gifting to someone you hate, you'll want to find a store that does exist in their town but has only one, horribly inconvenient location. Alternately, you could give them a $25 gift card to a store where nothing costs less than $50.
(Ed actually really likes fruitcake. So do the girls, but they can't eat it anymore because it always has cherries with red dye #40 in them.)
(I have been writing up "gift idea" articles for my gig at go2.com. I updated a "gifts for people you hate" article but my editor fixed it so it was USEFUL. He figures that you shouldn't be wasting your time and emotional energy carefully selecting the most passive-aggressive gift possible, you should just give them an amazon.com gift card and call it a day. And he's right, of course, but how fun is THAT?)
(I actually don't have to buy for anyone I dislike. And if you've ever given me a present and are wondering if I'm talking about you somehow, I'm not, don't worry. This came out of many message board conversations in which people groused about having to gift shop for their evil MIL, their impossible-to-please parents, etc.)