I found this browsing online looking for this particular tweak.There are alot of different ways to do it... I just copied this method for those who want to have a go. I noticed my spare phone which is on the same network as my iPhone4 keeps hold of its 3G signal far longer than the iPhone,
1) Install "iFile" from Cydia ((Or use whatever file browsing software you like ))
2) If your on older firmware(3.1.3 or older) browse to /var/preferences...For newer firmware 4.0> browse to /var/wireless/Library/Preferences
3) Select csidata, and choose "text viewer" in ifile or view as a text file
4) Scroll to the bottom of the file and find GsmRegistrationModel::fRatSelection=0x1
5) Select "Edit"
6) Change:
FROM: GsmRegistrationModel::fRatSelection=0x1
TO: GsmRegistrationModel::fRatSelection=0x2
(FYI: 0x0(GSM/EDGE ONLY), 0x1(GSM/EDGE + 3G), 0x2(3G ONLY))
7) Reboot the phone.
You're done.
To return it to GSM+3G (normal.) Simply go in to iPhone Settings>General>Network. Select "Enable 3G" to "OFF" (wait a few seconds) then turn it back ON. This will reset "GsmRegistrationModel::fRatSelection=0x1" (normal again.)
Note, if you don't see the line "GsmRegistrationModel::fRatSelection=0x1" in the csidata file. Do the Settings>General>Network and toggle "enable 3G" off and back on. This will print the line to the settings file for you to go back and edit.
Remember there is always a pay off.... you may suffer from battery issues ...myself I'm not particularly worried as my phone is usually charging in the car or hooked up to my laptop. Signal is king with me

1) Install "iFile" from Cydia ((Or use whatever file browsing software you like ))
2) If your on older firmware(3.1.3 or older) browse to /var/preferences...For newer firmware 4.0> browse to /var/wireless/Library/Preferences
3) Select csidata, and choose "text viewer" in ifile or view as a text file
4) Scroll to the bottom of the file and find GsmRegistrationModel::fRatSelection=0x1
5) Select "Edit"
6) Change:
FROM: GsmRegistrationModel::fRatSelection=0x1
TO: GsmRegistrationModel::fRatSelection=0x2
(FYI: 0x0(GSM/EDGE ONLY), 0x1(GSM/EDGE + 3G), 0x2(3G ONLY))
7) Reboot the phone.
You're done.
To return it to GSM+3G (normal.) Simply go in to iPhone Settings>General>Network. Select "Enable 3G" to "OFF" (wait a few seconds) then turn it back ON. This will reset "GsmRegistrationModel::fRatSelection=0x1" (normal again.)
Note, if you don't see the line "GsmRegistrationModel::fRatSelection=0x1" in the csidata file. Do the Settings>General>Network and toggle "enable 3G" off and back on. This will print the line to the settings file for you to go back and edit.
Remember there is always a pay off.... you may suffer from battery issues ...myself I'm not particularly worried as my phone is usually charging in the car or hooked up to my laptop. Signal is king with me
Comment