Gift giving helps you measure a number of things about yourself, including just how cheap you are and how much you just don't really understand about the person you're buying the gift for. But it also teaches you a great deal about your gift-giving target.
Case in point--some years back I was invited to a wedding for a close friend. Now, wedding registries have made wedding gift giving much easier, but this friend initially refused to set one up. And, since this friend is very wealthy, any amount of cash I could have afforded to give would have been an insult, sort of like a Bangladeshi rope farmer giving his annual wages of six dollars to me (an American who makes as much as several thousand rope farmers). Ultimately, they did set up a registry, but this illustrates one of the hardest types of people to shop for--the well-off person who buys themself what they want or need.
The best people to shop for?
1) Poor people. You'll find poor people--including children, or that guy from college who is sleeping on your couch "for just a few weeks"--have many things they need or want but just can't afford. Getting them one of these things is always appreciated.
2) Collectors. That friend of yours who collects rare Nepalese daggers or stuffed snakes is someone you know could always use one more addition to their collection. In this day of electronic media, though, rare records or books are hard to find and of less usefulness. So you need a more eccentric collector, and who wants to be friends with a weirdo anyway?
3) The self-deprived. Some people, no matter how rich, will just never buy themselves something they would most likely use if they had it. Think of the friend who still has a VCR, or heats their food with a candle because they never got around to buying a microwave.
4) The easily shamed. There are some things we all want but can't face buying for ourselves and can only accept these things if they're given as gifts. Tacky holiday sweaters, or that Cher CD, or that trip to the acupuncturist--maybe it'd feel funny to get it, but if someone else got it for you, you can always say "it was a gift so it's ok."