The dfcleanmap tool in the dfhack tool set will clean up all blood, pus, vomit, goo, and other contaminates on the ground. It will not remove mud from the ground, so you won't have to re-irrigate your farms. It also won't touch blood that your dwarves and animals are wearing, so you will likely have to use it repeatedly as they keep dropping pools of blood every time they clean themselves.
I have found that animals are a major culprit in spreading pools of blood. Wandering animals never properly clean themselves, pick up contamination every time they hit a pool of blood and spread it everywhere. Restraining or butchering all your stray animals will help contain blood contamination.
Having a well helps, dwarves will clean themselves at a well given a chance. Having soap does not help. If you have bars of soap not in a hospital, a dwarf who wants to clean himself will go and pick up a bar of soap, then get confused, drop the soap, spam cancellation messages, and then forget what he was just doing. Forbid all soap that isn't in your hospital.
I have experimented with automated wash rooms, with mixed results. Moving water will remove blood from dwarves. This will create pools of blood which may contaminate anything which steps in them. Moving water will push pools of blood around, possibly duplicating them if the water spreads out and evaporates. Pools of blood will not fall through grates in DF2010, so having a waterfall falling into a grate will just result in a big pool of blood on the grates that contaminates everyone who steps in it. I'm still trying to figure out a design for a self-cleaning wash room.