There are, as indicated, many places online that sell decent stones. Always cleanse your stone after getting it. I have gotten a few negative ones recently and have heard many stories from my brother who works with stones on a regular basis for his arrow head business.
To find them locally you can of course look for a holistic or new age store. One thing to keep in mind these are going to be higher priced than one that you get from Lapidary's. Look in your phone book for local Lapidary's (stone stores), you're going to find a better selection at a much lower price.
On average I found in my area a good stone about 1" in size runs about $1.50 (amethyst, quartz, tiger's eye, obsidian etc). On the higher end I've seen them about $5 a stone. I've not seen anything much more expensive unless you run across a pure crystal/stone such as a peridot with very few inclusions.
Be careful of buying online the bulk stones. I had an experience a few weeks ago where I bought a pound of assorted stones, turns out about 70% of them were nothing more than chips. I did get two really nice amethyst's out of the deal but it wasn't worth the $20 I paid. Nearly 50% of the stones were citrines. I went to a local store and got the same stones in a much larger size that were polished for much less money.
Good luck
Barbie