One way to get longer battery life is to disable HSPA and just use 3G. 3G (UMTS) is not as slow as EDGE/GPRS but doesn't use as much power as HSPA.
Here's a quick comparison of *typical* download speeds:
GPRS: 48 kbit/s, EDGE: 150-200 kbit/s, 3G: 384 kbit/s, HSDPA: 1000 kbit/s
After some searching, I've found a method that actually works for our Galaxy S:
Go to the phone dialer pad and enter this code: *#301279#
Click  CHANGE HSPA REVISION
Click  RELEASE 99 (HSPA OFF)
Then you should see something like:
HSDPA OFF, HSUPA OFF
Press the BACK button to exit, or press MENU button then END.
The setting should take effect shortly after you exit the menu. To be sure that the setting take effect, toggle Flight/Airplane mode.
You could store that number in your phone book or speed dial for a quick way to toggle HSPA.
The setting STAYS ACROSS REBOOTS!
If you want to enable HSPA again just go back to the same menu and choose  RELEASE 6 (HSDPA/HSUPA).
Just tested it with the XXJPP radio and it really works.
Longer battery life at last!
EDIT: Deleted the earlier method of using local.prop / build.prop which doesn't work on the Galaxy S. Ignore posts #1 to #15 as they are regarding the earlier method.