Long story short: it varies. Depending on how much stain you put on, it can be anywhere between 2 and 24 hours. We stained our counter height kitchen table before putting a coat of black paint over it, and that was dry enough to paint over (we wanted the two to mix. Unconventional, yes but it turned out really cool!). That only took about two hours to dry.
If you are staining a piece of furniture or a door, and it is a good, healthy coat of stain – you had better wait at least 24 hours to let it dry.