Herbs (and leaf vegetables in general) must be harvested regularly and not left to mature too much or too soon. Here are a few tips to harvesting herbs — mostly paraphrased from these two answers of mine — that'll help you keep a good availability of herbs for most of the year.
Harvest the young leaves
There's a reason why grocery stores only sell the young leaves of herbs — the flavorful herbs as we know it are the young leaves of the plant. At this stage in the plant's life, its sole purpose is to grow and as such, the leaves are wider, lush, tender and rich in the aromatic stuff that we love. Once you have a bunch of young leaves (or when the plant is 6" high), you can start harvesting it a few stalks at a time.
When the plants reach maturity, its focus is to reproduce and die. So the new sets of leaves it produces are a lot thinner and in general, less aromatic (sometimes gets bitter). This is very commonly seen in cilantro, parseley and mint (and less so in rosemary and thyme).
If you need more, plant more!
If your culinary needs require larger amounts of cilantro, don't chop off the entire bunch or a lot of leaves at once, because the plant needs its leaves to photosynthesize and grow. My rule of thumb is that no more than 1/6th of the plant should be harvested at a time. Instead, have two plants and take off a 1/6th from each. You can scale this up and plant more as per your needs.
If you follow such a cycling scheme between sets of plants, you'll automatically be trimming the plant, keeping it forever young and by the time you've reached the last plant in your set, the first will be ready to harvest — this way, no plant is overworked.
Prevent bolting at all costs — pinch the flowers!
If you notice any flowers growing/flower buds, pinch them off. Remember that a plant's "mission" is to reproduce before it dies, to ensure the survival of its species (producing flowers is the first step). If you let it go to flower (also called bolting), the plant, satisfied that it has successfully produced a flower, might decide to stop growing and focus instead on developing that flower into a fruit and eventually a seed.
However, when you remove the flowers you're sort of "tricking" the plant into thinking that its previous mission has failed (i.e., it hasn't produced a flower to ensure its survival). This in turn encourages the plant to produce even more leaves for food production (and flowers). However, this will only prolong the life of the plant by a few months.
Basil and cilantro are notorious for "bolting" and this answer of mine shows how to remove the flowers (it's really easy). Typical indicators of a plant that has bolted or is in advanced stages, is the presence of flowers, woody stalks and thin, possibly bitter leaves. At this point, its better to let it go to seed and harvest the seeds for spice (in the case of cilantro) or simply start a fresh one while this dies.
Plant only what you know you'll use
I know, it's tempting to be able to grow all possible herbs so that you can use it whenever you need them. However, if you're not prepared to use them up (or share with friends/neighbours) at the same speed as they grow — i.e., if you use them sparingly — it might be a better idea to not plant them in the first place. They'll simply die without being used and most likely, you might end up only needing it when it is at a mature stage, hence spoiling your experience with the out-of-flavour leaves.