It essentially disconnects data when screen is off (the algorithm is a bit more complex, but that's the basic idea). Especially in areas where my phone passes between 2G/3G/noSignal often, I see much improved battery life.
This is one of the major things that JuiceDefender on Android phones did, though the app has apparently been abandoned (last updated more than 3 years ago). I suspect that there are newer apps doing the same things, at least on rooted phones.
Sony Xperia devices have a Stamina mode that turns off data and wifi right after the screen is turned off. Big difference in battery life if one is not really interested in push notifications, etc.
+1 for this, my z3 compact with stamina mode on lasts almost a full week(!) even though i do a few calls, check emails, browse a bit etc. Performance while using it actively is still 100%, so not like many other lame battery saving modes that reduces the frame rate to 1fps and brightness to 0.01% making the phone unusable.
Only drawback is that background downloads get canceled when the screen dies but i don't have any downloads outlasting my active usage sessions anyway so i don't care really. Many people wouldn't like missing the push notifications from the mailbox but for me that is just another good reason to activate it.
Personally, I tried to get it to do a "turn data on when I have the display on, otherwise turn data on every X minutes/hours", but handling all the corner cases was difficult.
According to this [1] StackOverflow answer there is no API support for enabling/disabling mobile data, but it can be done using reflection. Process requires CHANGE_NETWORK_STATE permission.