VPN is the current best available secure communication.
However, there can be conditions wherein the users API is compromised (as in keylogger) or the public WiFi has 'gateway' technology inserted into the data stream pre-VPN connection.
If any network uses a properly configured "gateway", all traffic (including "secure connection" types) can be completely transparent & copied, and used for any purpose, unknown to you.
The use of some varieties of "gateways", where all of the clients in a network are accepting a certificate from the gateway, which shows a secure connection, but in fact allows the gateway to impersonate a remote server.
The gateway is trusted like a legit certificate authority, and is able to sign the certificates of sites that you think you're visiting.
Your traffic is decrypted there, analyzed, and then re-encrypted for its transit across the Internet.
To ascertain your 'VPN' connection is not being proxied (and therefore potentially compromised a la 'man-in-the-middle' snooping):
look @ the 'properties' of your VPN client and it's certificate pedigree (the 'chain of trust' or the 'certification path'); who's issuing the certificate, and so on. Untrusted issuing authorities, between the end point and your machine would be an indication of some monkey business.
For example: a corporate environment or hotel, where the connection was using the gateway to issue certificates.
Want more?
Virtual Private Networks (VPN): Theory & Solutions
Episode #14 & 15
http://www.grc.com/sn/sn-014.htm
http://www.grc.com/sn/sn-016.htm