Once my PocketPc establishes a 3G connection it will not terminate it automatically and will stay connected to 3G, which in turn drains the PPC battery rather quickly. I found out 3 ways to get the 3G connection terminated, 2 manual and 1 automatic ( 2 of these involves Registry Editing ).
Manual Disconnection
1> When you are done with the 3G connection , just keep the call Disconnect button ( the red phone button ) pressed for a few seconds and the connection is terminated.

2> Get a disconnect button & time of connection in bubble when you click on the connectivity icon ( usually the 3G/E/H icon on top)

For this hack you will need to edit the following Key in the Registry
HKEY_LOCAL_MACHINE\ControlPanel\Phone\Flags2
you can have 3 options
0 - No disconnect button & time of connection in bubble
8 - Show disconnect button in bubble
16 - Show disconnect button & time of connection in bubble
Automatic Disconnection
3> With this Hack we can set a predefined number of Seconds , and if the 3G connection is idle for this amount of time the connection gets disconnected.
For this hack you will need to edit the following 2 Key in the Registry

HKEY_LOCAL_MACHINE\Comm\ConnMgr\Planner\Settings\
the 1st key is DWORD CacheTime the number denotes the number of seconds to wait before the auto disconnect, I have mine @ 60 seconds
the 2nd key is Multiline value / String SuspendResume which can have 2 values
~GPRS! :- 3G always On
GPRS_bye_if_device_off :- timeout after CacheTime
and you will need to set it to GPRS_bye_if_device_off
The above text is a direct copy/paste from http://www.1800pocketpc.com/2008/03/19/auto-disconnect-gprs-on-ppc.html
Keywords: grps, windows mobile