Any animal based (protein) fiber should accept the natural dye easily. Plant fibers are less successful. If the fiber is synthetic (nylon, acrylic,) you'd want to use acid dyes. Also, you can overdye yarns... if you don't like the color of a yarn, try overdyeing it! If the fiber starts off a bit darker, then the color will be darker when dyed.
Onion Skins
Having never dyed with onion skins before, I did a search online and found some sources that hinted at soaking the skins for 24 hours prior to using them. I took 2 plastic jars and filled them with skins (which I first weighed so that we had an idea of the weight of the skins we used), then poured boiling water on them and let them soak for a few hours the morning of the class. I figured it can't hurt, and while it wasn't the way our instructor generally did the dyeing, we used the liquid and skins.
Madder Root
Brazilwood
You'll also notice that there is some purple colors in here... After the dyeing, we added baking soda to the dyepot which made the purple/fuschia color, and added vinegar to a different "afterbath" and that made the brighter coral color.
Here's a helpful online link: Dharma Trading offers natural dyes and mordants for purchase (as well as a LOT of other things) - if you can't find materials locally, you can always order from them!