In my experience, it's your cassette. It might not look worn, but if your old chain was stretched it will wear the cassette with it. Typically, I always replace both the chain and cassette together. Sounds like it's time to find a new LBS... it ain't easy to find a good one, that's for damn sure.
Ditto that, sounds like a new cassette is in order. Check for stiff links in your chain by back-pedalling the cranks and watching the chain as it leaves the rear mech, a stiff link should show up as a kink. Don't try this whilst riding along... Steve.