I'm also broke.
That's where Mis-Knits comes in. Good, basic yarn is a huge amount of colors. Amber carries my favorie wool - Lamb's Pride from Brown Sheep in a lot of colors. She will also order anything I want from Brown Sheep ( I love their stuff). Her prices are good, not just fair, but good. I would love to buy some of the fancy, hand spun, hand painted yarns that other shops carry...but I don't want to end up making a $300 sweater for my size 3 daughter. I spent $13 on two skeins of Brown Sheep Nature Spun at Mis-Knits and so far have made 3 crocheted beanies out of it and have some left over for other stuff. 3 Christmas gifts for $13. Beat that! And while these are brightly colored, they are not the grimace inducing, 1970's crochted stuff that you may be used to seeing. Nature Spun makes a good wool.
I also frequent a couple of online, luxery yarns for less stores. I'm poor, but I would rather not knit than use crappy yarn.
My favorite way of getting great yarn for less? Thrift shop sweaters. Angora is EXPENSIVE at any yarn store. Angora sweaters are cheap at thirft shops. Find one that's not been washed (unless you need angora felt for a pattern) and the sweater must also be knitted or crocheted together. If you find one that has been serged you won't be able to use it. Find an end and unravel the sweater. After several hours you will have enough yarn to make a new sweater or something entirely new. Takes forever, but is worth it. I do it when I am riding in the car or watching TV. The yarn in these is usually VERY thin, so for most projects be prepared to use double strands or very small needles. I like to run it along with another yarn to add softness and contrast. Sometimes I will use double strands to knit the cuffs to socks or gloves. Luxery yarn and recylced too.