I've gone several routes, including coin shops, eBay, and different online vendors. This is what I have finally ended up with as a strategy:
Small quantities, like less than 10 ounces, the best deals are usually found on eBay. There are a lot of reputable companies that sell PM's on ebay, and a lot of times they are cheaper there than on the companies website. I mostly deal with MCM, Silver Town and APMEX on ebay.
For larger quantities, I have now gone exclusively to JM Bullion. The best pricing is via check, which slows down the delivery by a few days, but you lock in the price at time of purchase. After enough transactions with them they approve you for electronic checks, which speeds things up a bit more. There are other vendors that are just as good, including APMEX, Silver Towne, etc..., I have just found good service with JM and decided to stick with them.
Other than the obvious 'buy low' advice, the best advice I would give is to watch the premium over spot closely on every deal. Again, JM Bullion has a lot of sales where you can get 10 ounce bars or generic rounds for 99 cents over spot for any quantity. Govt issued coins (American Silver Eagles, Canadian Maples, Britannias, Aussie coins, etc...) are usually more like $3 over spot, but they are considered safer investments. My rule of thumb is to buy generic at no more than $1 over spot and govt. coins for no more than $2.50-$3 over spot.
If you've got spare cash, it's great if you can buy a lot at a time like this, where spot is at a low point. As it fluctuates, I still like to keep up a discipline of buying 5-10 ounces on a regular basis when I can.
I have not yet jumped into gold, so I can't speak to that.