What you want is an aniline dye, either water- or alcohol-soluble. The alcohol-soluble dyes dry very fast and don't raise the grain of the wood, but they're a bit harder to control. They also will lift if you put shellac over them as a clear coat.
To use a water-soluble dye, sand to your final grit, dampen the wood with water to raise the grain, let dry overnight, then sand again, lightly, with the same grit to level the surface.
If you want to get a pure color, and the wood you're dying has a lot of color on its own -- if it's anything but unstained birch, pretty much -- you'll need to bleach it first with a two-part wood bleach. Otherwise, if, for example, you start with wood that has a lot of yellow in it and try to dye it blue, it's going to come out.... green
(The bleach is also water-based, so use it after the grain-raising step above -- then sand again, very lightly so as not to cut through the bleached wood.)
Transfast, by Homestead, is a good brand. It comes in powder form, in all the colors of the rainbow and some the rainbow never thought of... buy it at Rockler, or order it from them online
Another option is the line of dyes from TransTint, which are soluble in either water or alcohol. They're less fussy to mix than the Transfast dyes. (Note that with these, shellac may lift them even if you've mixed them with water.) These are also available from Rockler
Do some samples to get a sense of how the dye behaves, and of how the final finish affects the color. You may want to use a clear acrylic or epoxy finish, which have no color -- other finishes will add some yellow to whatever color you put them over.