Minimizing data usage for users with data caps To reduce my phone bill, I recently switched from an unlimited plan to a prepaid plan which only has a 50 Mb data cap per month. I think that should be adequate for email, google voice, and navigation.

In order to avoid going over the data cap, I would like to disable all data heavy applications such Youtube, Application Update, etc. while the carrier's data connection is on, and enable them only when WiFi is on. Is there any easy way to achieve that? 

In general, what settings do I need to change in order to minimize my data usage?
If your phone is rooted, I would highly recommend DroidWall. It's a firewall application that allows you to restrict access to Internet by application.  It has separate permission settings for WiFi and Cell data, which allows you to restrict the data usage by the connection as well.  Chances are though that you will also need to be running a custom ROM or kernel that has "iptables" module built-in.

In terms of minimizing data usage in general, there are several settings you can play with.  I'd recommend going all manual by disabling "Auto-sync" and "Background data" options under Menu -&gt; Settings -&gt; Accounts &amp; sync. Then take a look at interval update settings in all 3rd-party apps you use for services such as Twitter (Twidroid, Seesmic, etc.), Facebook, e-mail (K-9 Mail, E-mail, GMail, etc.), RSS feeders (NewsRob, FeedR, etc.), and others (widgets, weather apps, etc.) Most such apps let you configure the update interval via settings. Either make them all disabled/manual, or use the farthest update interval they allow. Also disable any notifications in these apps so that they use even less data.

You might also be able to use some apps/widgets that toggle the data connection (without affecting the cell signal) and only enable it when you need to use apps requiring data (retrieve e-mail, catch up on tweets, use browser, refresh weather status, etc.) and then toggle it back off when you're done.