Check which IPs or web-sites an app is communicating with? Usually they do it behind the scenes. So I'd love to know where apps are actually sending data and from whom they are actually getting responses.
Some apps offer a network monitor, e.g. OS Monitor does:

 

As you can see in the second screenshot, it even allows you to look-up the destination and show it in a map.

Quick System Info offers a similar feature:



As you can see in the last entry of this screenshot, it even names the app which holds this connection.

These are two examples of real-time monitoring which do not require root. If your device is rooted, you might also want to take a look at DroidWall: This app offers to keep a log of all network accesses for each app. Plus, as a Firewall app, you can restrict apps to WiFi, mobile network, or even forbid them network access altogether.