X-mas has declined into people just buying each other "stuff" and fretting if they got someone else the "stuff" they wanted. I'm talking to family members and next year I don't want to exchange gifts, I'd like to donate to toys for tot's or similar program so maybe a few more kids can wake up to X-mas morning with new toys, it would mean a hell of a lot more to them than me getting another sweater, DVD or wallet..
Don't do just one or the other...meet in the middle. Make the gifts personal, not generic. Throughout the year, listen to what people say. The best gifts are things they would not have thought to buy for themselves, or could not make by themselves. This shows you pay attention to what is important to them. Make it something that not only makes them happy now, but opens up new pathways for them.
Comic book fan or kid at heart? A book on drawing comic characters and a set of pencils. Or a set of Construx from the 1980s (not new from Toys R Us).
Beer snob? Home brew kit, or a collection of unusual ingredients; say, the stuff to make chocolate mead.
Big reader? A ream of paper, The Little, Brown Handbook, and a framed inspirational quote from their favorite author.
Sports fan? Genuine vintage hat with an old logo on it, combined with a new ball. Or, a gift certificate to the local batting cage (note that this kind of personalization can make a gift certificate acceptable). Careful with a gift certificate for a gym...it can be taken the wrong way. You'd better be sure they're going to be ecstatic to be able to go.
Handyman? A book of plans for treehouses and a gift certificate to Home Depot.
For the wife? Buy a Dustbuster, blender, etc, then hide a piece of jewelry inside the box. Make them open it right away. "How'd that get in there?"
For almost anyone? Free lessons in something like singing, dancing, piloting, a foreign language. Something fun...not just tutoring.
As for the charity, don't donate in their name. Do it in the name of "The person who saved my life when we were 14", "The person who taught me how to juggle", etc.