Vinegar will help set some dyes... but then you walk around smelling like an Italian salad. We used to use it on leather boots to hold the brilliance of some colors.
I took a class in a yarn shop several years back and it was similar to this link. They suggested using it on wool or animal fibers and that it did not really work as well on cotton or other plant fibers. http://www.knitty.com/ISSUEfall02/FEATdyedwool.html