It depends how much you want to buy, how you want it spooled, and what colors you use. Surprisingly, I have found that Amazon is a pretty good source. (Be careful, sometimes a search for PLA filament has some ABS on it, and vice versa.) Since I subscribe to the shipping (Prime) I don't pay incrementally for 2 day delivery. PLA, and now ABS from Just PLA is pretty good, now that they have their quality under control. SainSmart has some of the colors that are hard to find, but you pay a few dollars extra. However, if you are looking for 5 or 10 kg, you'll have to go elsewhere.
http://www.reprap.org/wiki/Printing_Material_Suppliers has an extensive list of suppliers. Ultimachine seems to have a wider variety of materials than other sites.