Blockages preventing the flow of water can be caused by a number of things within the pipeline.
In the kitchen, food scraps and fats, oil and grease are your worst enemy. Meanwhile, In the bathroom, soap, oil and hair can build up. These blockages are relatively easy to deal with if they occur close to the drain.
More difficult blockages are deeper in the pipeline. They can often include other objects or materials that have been flushed out of sight, but not out to the street. Tree roots invading the pipe are the worst offender, and one of the most challenging to remove.
Other random causes include cement washed down drains during renovations, earth movement causing drains to collapse, or just poor installation in the first place.