Spend a day winding your threads onto bobbins while weaing white gloves, you will see just how filthy they are before you even start stitching. Think about it, they get made in a factory ( unless its a food or medical factory these places are not clean) then they get put onto stands in shops, these stands aren't covered to keep dust and dirt away, then you have the handling by the original factory staff, the packers, the shop owner/staff, the customer... most of these folk will not have scrupulously clean hands to begin with. So if it's a good colourfast thresd then wash your finished work, if it's hand dyed then carefully wash and rinse your threads before stitching :)
Also when ironing put a thick, folded fluffy towel under your work
I always wash my cross stitch pieces as it seems to close up the little holes and looks more even, but I always put a couple of teaspoons of salt in the water and that sets any dye that may like to run.
i wash really dark floss BEFORE i begin to stitch - so i can be assured that "bleeding" into lighter colors isn´t that much. after finishing a project i wash it in warm water with a bit mild shower gel, let it dry and voila.. fresh!
I always wash my completed projects but I choose to stitch with DMC or Anchor as they are colourfast. They come up really well and the ironing just finishes it.