Photoshop can help provide a solution for those overexposed photos.
The easiest way to do this is to open it in Photoshop and select Image> Adjustments> Shadow/Highlight. While you will see an immediate difference in your photo, it will probably be too intense but this can be used as a starting point.
The defaults pre-set in Photoshop are usually extreme. Simply adjust the Amount Slider and the Tonal Width Slider in both the Highlights and Shadows until balanced to your liking.
Fixing Overexposed Photos, Pre-CS – The Layer Sandwich Trick
If you don't have CS, then this trick will help you accomplish similar results.
Step 1 – New Layer
Open your photo and choose Layer> Duplicate Layer to make a copy of the Background Layer, or by dragging it to the New Layer Icon at the bottom of the Layers palette.
Step 2 – Change the Blend Mode
From the Layers palette change the Blend Mode of the new layer from Normal to Multiply. This will darken the photo uniformly.
Step 3 – Repeat
Now repeat the entire process again. Create a new layer, change the blend mode to multiply, and watch the result. Continue doing this over and over until you go from "it's almost just right" to "it's awful!"
Step 4 – Lower the Opacity
Now leave the last layer active even though it is much too extreme and lower the Opacity using the slider at the top right of the layers palette. This lowers the strength of the effect. Once you have found the right amount, you can flatten your image.
Step 5 – Flatten And Save
Choose Layer> Flatten or use the palette's flyout menu and choose Flatten Image. Now you are done! Don't forget to save your file (File> Save).