I have been to many towns outside A'dam.
Haarlem is close, and has some nice coffeshops.
Delft is beautiful, and has good shops too.
If you want to see the beach, try Scheveningen, or Zandvoort Aan Zee. Both have some nice shops, and are easy to get to by train and tram.
Den Haag is a bigger city, but still has some nice shops with cheaper weed, and a lot of things to see.
Leiden is nice, but most of the shops aren't open during the day.
One of my favorites is Nijmegen. It's a college town with great atmosphere, friendly people, and some of the best shops in the Netherlands.
Also, Tilburg is a surprisingly nice place. It's a small industrial city, where the locals know how to party. Nice big shops with good weed and cheap prices.
Rotterdam is not a small place, but there are lots of shops, and the competition keeps the prices low. If you don't mind the 'big city' atmosphere, R'dam is very cool.
Utrecht is great too, and only a short train ride from A'dam. It's another college town/small city. A lot of people commute to Amsterdam from here.
There are so many more, that I just don't have time to post about them all.