dye a garment once it's made up, rather than the fabric itself -- I've done this with several pieces instead of dyeing the fabric ahead of time, mostly where I didn't have time to dye and was on a timeline or didn't want to worry about finding a good colour match for thread later. The critical tricks with dyeing as a finished piece rather than as fabric are to preshrink the hell out of EVERYTHING (wash your fabric on the hottest setting it can take, dry it likewise), to finish all your seams, and to make sure that you use (at least on exposed seams) a dyeable thread. My very first dyeing experiment was turning a lovely piece of silk chiffon from grey to blue, but I didn't realise my thread was polyester -- and so there are now grey stitches on the edges where I had seamed it. It's doable, you just have to make sure you account for things.
Seconding the above recommendation for Dharma Trading; I've bought quite a bit of stuff from them, and their fabrics and dyes are consistently good quality. (And their customer service is fab; the few times I had problems, they fixed it posthaste.)
If you're dyeing larger pieces, a good idea is to throw a scrap of fabric into your dyebath so that you can pull it out and rise and check your colour along the way. I tend to do dye tests beforehand (usually with little jars and tiny scraps) to ballpark my ratios, especially when I'm mixing dyes. You may wind up with a lot of tests
before you get one you like, but trust me, it's worth it compared to pulling your fabric out and realising it's not what you wanted. When in doubt, err on the side of too light; it's easier to add more than it is to discharge.
(Just some rambles from this dye-happy corner. XD )