This is, by far, the number one question I get asked. The answer isn't a simple one... I get it from wherever I can get it at the best value. Seeing as how a lot of what I buy is resold as a finished garment I am extremely budget conscious. So, here goes!
My local stores: Calico Country and Tangled Thread both in Lynden, WA are excellent stores with friendly faces, unique selections, and excellent resources.
By far my favorite online retailer for fabric is Fabric.com!
You cannot be their prices, their clearance section is huge, they have fantastic sales, free shipping on orders totaling more than $35, frequently offer excellent coupons that can be combined with the free shipping offer, and, best of all, they offer a 100% satisfaction guarantee (which I've had to use and they honor it without question). The have excellent US based customer service and offer online customer service chat (if you are in to that, which I am!). Beware...if you are a fabric junkie be prepared to lose hours of your life in this online store.
One of the first places I bought fabric from that wasn't local was www.uberstitch.etsy.com. This is a mother and daughter team who work together to fulfill orders. The fabrics in this store are nothing short of eye candy. They have a terrific sale section in their online store, offer whole and half yard cuts (as well as multi-yard cuts and fat quarters). Every single item I've gotten from them has exceeded my expectations in all aspects (shipping, packaging, quality, and price).
Another favorite of mine is www.skyerevefabrics.com. This is a much smaller online retailer but Natasha offers some fabrics in unique bundles that you probably would have a hard time finding anywhere else. She also has frequent sales (follow her on facebook to get the sales codes), fast shipping and the fabric is beautifully cut (ie, cut straight) and well wrapped.