I get them from mypoints. If you're a Bzz Agent they just recently switched their rewards system to mypoints. I just cashed in points for 2 $10 GC's to Old Navy, 1 $10 GC to CVS (to use with ECB's of course), 1 $10 GC to Barnes and Noble, and 1 $10 GC to Bath and Body Works. Some of these will be used a Christmas presents and it won't cost me a penny.
I also get Starbuck's GC's for my birthday and from a friend when I babysit her kids. I make them last a long time by buying a bag of coffee beans instead of buying coffee by the cup.
My neighbor also gives us a $100 GC to a restaurant each year (Cracker Barrel, Red Robin, etc) because my DH mows her grass for her. He doesn't charge her, he does it because she is widowed.