Dogs have been rolling in dirty things for as long as they have been dogs. It is as much a part of who they are as their barks and wagging tails. They are not going to quit doing it just because people want them to. All that you can hope to achieve is keeping them away from temptation or knocking down the odor enough that they are bearable to be around.
Baths are fine for eliminating a little bit of doggy smell, but they will not do a thing for a dog who has rolled on an old catfish. If anything, washing them seems to raise the scent. A better choice may be an odor neutralizer. Available in pet supply stores and online catalogs, these contain ingredients that break down bad odors chemically.
Beat them to it. It is not a glamorous job, but some people have resigned themselves to doing a treasure hunt every few days, looking for things in the yard that their dogs are likely to be attracted to such as dead mice and rotten bird eggs.
Take some goodies with you when you are out for a walk. It is not easy to convince dogs to ignore their natural urge to roll, but food is always a reliable distraction.