To measure impulse sound levels (that is, with a standard impulse time weighting), SoundMeter
is the app you're looking for. For now, to save your readings from within SoundMeter, you can choose to capture an image of the sound level display, take a photo upon which the sound level will be overlaid, email the sound level details, or post your readings to Twitter.
SoundMeter does capture GPS coordinates, which can be saved/sent/posted with your sound level measurements. What level of precision do you need in the GPS readings?
For measuring high sound levels, such as those produced by a gun at close range, you will definitely need an external microphone (dB does not support calibration of external microphones, but SoundMeter does). However, unless you have an external microphone with a very low sensitivity, you will also need to get your mic signal into the iPhone via the dock connector, rather than the headset connector. Your microphone selection will depend on several factors, including the level of precision you need in your measurements, what your budget is, how portable your setup needs to be, etc.