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 -> Settings -> Accounts & 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.