My guy's got white legs all around, from the knees and hocks down. He adores all things filthy.
Something that does wonders for me is cornstarch paste. Its funky stuff to handle, but try making a sticky, gooey paste with cornstarch and water, and goober it all over the stain. Let it dry there until it's kinda firm, not running anymore, but not rock hard, and start removing the paste. Takes the stains right off my fella's white legs. If they're really nasty, rinse and repeat.
As far as commercial products, I've had good luck with QuikSilver shampoo, and Cowboy Magic GreenSpot Remover (only for "special occasions" - it's rough on the wallet!).
Oddly another thing that helps stains is to let them get really muddy. When I chip dry mud off of Scout's legs, the stains underneath lighten up significantly. There's still the matter of ground-in dust, though...
As far as keeping them clean, all you can do is minimize the dirt in their environment. Mud invites rolling, wee and poo on the floor invites a long, laying-down nap. Thick bedding and a dry pasture are the only way, and even then they get green grass stains.