I've had good luck at Fabric.com. The prices are very reasonable ( cotton broadcloth can be as cheap as $7.98 a yard) and they have a decent selection. They often have 20% or more off coupons and they offer free shipping if your order is over $35.
The good thing is even if your order is just over $35 and then you use a coupon, they still give you the free shipping. It's worth a look!