I like the dyes best. Stains work fine, but it seem really hard to build depth of color with. On a harder wood you get what you get on your first pass.
On a wood that has very little grain, If I'm trying to make it as figured as possible, I take an oil, acetone, or alcohol based dye and wipe over the whole thing with a medium color, like walnut. I let it sit, then actually wipe it off with a rag just damp with solvent, or a less volatile solvent. Then, I let it dry well, and wipe it with a rag wet with water, which raises the grain. THEN I rub that all down with fine or medium-fine steel wool. This takes off a lot of the base color, and leaves a bit in the grooves, winter rings, nooks, and crannies. Then go over it again with the same stuff, or a lighter color. It just gives depth and variance to the shades.
This works with stains, but not as well as dyes.
I also flame bellies to bring out grain, and things like damp coffee grounds can put some color in.