Gotta defend gift cards vs money, at least a little bit here. With a gift card you know its going to end up as being an actual gift assuming they use it. Give someone a fifty dollar gift card for Best Buys you know they will buy a cool gadget they wanted and possibly couldn't afford. Give them a fifty dollar bill and it'll end up being used for bills, groceries, etc.
But yeah, way better is actually figuring out yourself what they want and getting it for them.