I recently went to a yarn dyeing class at the Lion Brand Yarn Studio in New York City. If you have never been there before, I strongly suggest you check it out. They have all sorts of events (many of which are free) as well as computers to print out patterns, and a beautiful yarn selection.
Before the class we all had to pick out several skeins of yarn of an animal fiber. Though you can dye any kind of fabric, the class was geared towards wool. I chose two skeins of pure wool, and one of their organic wool.
To dye the yarn, we soaked the yarn first in a solution of warm water and citric acid for 20 to 30 minutes.
After using Jacquard Acid Dyes in squirt bottles to dye the yarn, we sealed each skein in a plastic bag and cooked it in a slow cooker.
Out of my three skeins of yarn, I think the purple one is my favorite.
The middle skein is the organic wool, and the other two are pure wool.