To obtain a semi precise GPS position, you need at least three satellites (but usually four or more is required to obtain a decent degree of precision) to triangulate your position. The more you have the better the accuracy.
A GPS receiver needs to power its antenna, and constantly process the signal sent by each satellite. Remember that satellites are continually transmitting messages. (50 bits/sec as far as I can remember)
Satellites emit messages specifying their exact location, trajectory, speed, the time each message was sent and the rough location of all the other satellites in the constellation.
By comparing this info to the time the signal was received a distance from the satellite to the receiver can be determined. When you have three or more satellites you can triangulate your location in three dimensions relative to the positions of the satellites.
The iPhone (and other phones) use A-GPS, which is designed to (believe it or not) among other things, make the GPS work better in poor reception areas (cities?) and reduce the amount of information that the receiver needs from the satellites, thus saving battery power from the Antenna.
The parts of the GPS signal about location, speed and orbital trajectory usually drop out first when in low reception, that’s where A-GPS fits in, feeding that info for every satellite in that part of the world to the phone, from a central database via the mobile network. Now the phone just has to search for the short timing signals from each satellite, which are easier to receive than the other parts of the transmission.
When all that information is calculated, an algorithm (there are a few as far as I know) is used to compute the position of the actual receiver.
Now add to that the fact that GPS messages are encoded and that satellites broadcast the messages at about 50 bits per second. And that each message is really a subset of frames with time, position, error correction, etc, etc.
There are more factors involver, but for the purpose of making this simple, the GPS’s cpu must constantly use the radio (already power hungry) to capture the signal (which may be weak!) for usually four or more (sometimes up to 20!) satellites that are constantly sending packages, then it must decode and process them, perform calculations to analyze the results and in some cases draw a map or feed an application with the info.
As you can see, this sounds easy but it’s not. There’s a lot of CPU processing involved in the back (plus the antenna’s power!)
So the GPS power consumption usually comes from the real time nature of the operation. Powering the antenna, listening for information and processing it, uses power, more than just a standby radio antenna (the phone) waiting for a call. Plus the A-GPS uses also the phone’s radio and (if available) Wi-Fi networks to determine its location (and use less GPS info), which means, more power is used at the same time.
The Wikipedia GPS page has a lot of detailed information if you want to get the specifics and/or dive into more GPS geekery, including the math and error correction stuff.