Why can't apps connect to the internet?
Sometimes the culprit is much easier to solve: If accessing secured websites (https:) via the browser fails as well, make sure your date/time settings are correct -- otherwise certificates will fail. Best explained using an example:

Say, today the date is May 28th 2013 -- but your device's date/time is set to January 1st 2010. Now you visit a secure website, which is using a certificate issued on June 1st 2012 -- valid vor 2 years. Your browser won't accept that certificate, as it must assume it's a fake -- issued in the future. Same would apply if your browser's date were set too far in the future, e.g. December 31st 2014: the certificate would look "expired" to the browser, which again would not accept it.

Same applies to your apps, which often use a secured connection (hopefully!). Just unsecure connections (not using certificates) would work fine -- which explains why your browsers work on many sites.