How do I enable Mobile Data only for select apps on a rooted phone? Unfortunately my carrier charges €0.10 per MB of data -- and I've found out the hard way that Android is a data hog.

As a result I keep my mobile data almost exclusively off.

Is there a way, perhaps through an app, to only allow some apps to use mobile data? For example I'd like to be able to use Whatsapp and Opera Mini, but disable every other service.

I've found that without wanting to, apps like eBuddy and (especially) Google Talk always want to re-connect, even when they haven't been directly run.

I am aware that as from 2.2, Google tightened security on app capabilities (especially task managers and home screen selectors). For what it's worth, my device is rooted and running CyanogenMod7 RC4 (based on Gingerbread) so this might break compatibility with pre-2.2 apps.
As you are rooted, you can use DroidWall to control network access on a per app basis.

From the Market page:


  Front-end application for the iptables Linux firewall.
  Allows you to restrict which apps can access the network.
  This is the perfect solution if you don't have an unlimited data plan, or just wants to see your battery lasting longer.