Most effective thing for skunk, I dunno about...just dog, but this worked really well several times.
~quart of hydrogen peroxide, 1/4ish cup of baking soda and a little tiny squirt of dawn. Dilute with maybe a gallon or so of warm water.

Mix the soapy solution up and use immediately. For skunk, usually 2-3 baths and the smell was well over 90% gone, but will return residually when the dog gets wet again. When my sisters dog was skunked, he got 3 of those bathes, and one the next two times in rained, and then it was not noticeable at all. I know it seems like a lot of work for several bathes, but after several other attempts, this was by far the most effective for not only killing the odor quickly, but was able to completely remove it longterm.

Another option that works a little better without having to do as many cycles is to put the concoction on the dog without diluting, but only let it sit for a minute or two and rinse thoroughly.