Most likely caused by allergies (very common). What breed is it (more out of curiosity than answer to the question).
As for good shampoo, an oatmeal bath is the best for a dog's skin if allergies. There are some hypo-allergenic dog shampoos out there and that's where I would start. Mix the shampoo with some mushy cooked oatmeal at each bath (don't mix and store... bad idea). Bath your dog once a week and after a month, you should start to notice a difference and less itching.
If not, then take to the vet to verify the condition. Chances are the vet will give you something for the dog's allergies (if that's the case) and a good recommendation for shampoo.
If your dog is a Shar Pei, you're kinda SOL. It's not allergies or anything other than a trait of the breed.