Fortunately there is a train store about 25-30 minutes from me, they really have a pretty good selection of O gauge for a small shop and I buy almost everything there. They also have a pretty good selection of hobby supplies and some G, S, HO, N & Z gauge too. I try to support them because I like to go there and look at trains and have a place to get hobby supplies. The prices are a little higher than the internet dealers, but they do discount most everything and give me a little better discount for pre-orders.
I have bought a couple of items on ebay and here on the for sale forum, but I have not had very good luck with used items so have been sticking to mostly new items lately. I have also purchased a few things from online dealers that my LHS didn't have or couldn't get, but I always try my LHS first. I missed pre-ordering a BTO item once and had to get that from an online dealer that must have ordered extras. The online dealer I got it from was an OGR forum sponsor that also posts regularly here on the forum. Also, their service was great.
We have 1 other train store that carries some O gauge, but they have very little in stock, it's another 15 minutes or so farther and they sell some items for above MSRP. I have only been there one time. There are a couple other train stores but they are strictly HO and N only. One even told me HO & N, NO O when I asked what all they had. I must look like an O gauge person or something?