Masking is a great way of controlling many things in Photoshop. In most situation, I will use a mask to only show a small portion of some large, destructive edit.
For example:
Let’s say I have a photo of a flower, with a large, blown out, over exposed area on one of the leafs. Let’s also say I was smart enough to shoot in RAW. In this example, I could take the photo, and open it twice, once normally, and then, in the other photo, fix the over-exposer. However in doing so, I would destroy much of the rest of the photo. I would copy the second photo over the first, then mask off all but the fixed, over-exposed area.
Masking also allows, as funkdaddy said, for smooth gradients and feathered blending in photos.
One final thing I would note: Masking can be a quick way to “cut-out” a background in an image. For example: If you have a model standing in a field, and you wish to remove the field and add a background of a city, you could easy mask out the background of fields by hand.