In stratified random sampling, you partition the entire sample frame into separate blocks. Then, independently within each block, you take (in the simplest case) a simple random sample (SRS).
In single-stage cluster sampling, you divide the entire sample frame into clusters, usually based on some naturally occurring geographic grouping (e.g. city, town village, hospital). Then you sample these clusters and measure every element within the selected clusters.
Two-stage sampling is the same thing as single-stage sampling, but instead of taking all the elements found in the selected clusters (called the first stage of sampling), you take a random sample of elements from the cluster.
For example, in single-stage sampling, you might take a SRS of cities. Within each city, you would measure characteristics of all hospitals. In a two-stage sampling plan, you would take a SRS of cities, and then within each city, you would list out every hospital. Then you would take a SRS of hospitals.
Of course, you should note that you don't have to always take a SRS. Many different sampling schemes can be used within clustering and stratification. Most introductory texts, simply use SRS to explain the concepts initially.
Typically one would prefer cluster sampling if it is hard or expensive to visit each group/stratum as is required in stratified random sampling. However, you sacrifice increased variance by doing so.
Here is a nice drawing that I pulled from Sharon Lohr's book Sampling Design and Analysis. I think it's easier to understand the difference between stratified and cluster sampling by looking at a visual.