I frequently need to access secure resources (gmail, banking, remote desktop, etc) while on public wifi hotspots. What can I do to ensure that nobody can sniff my passwords or my other browsing activity?
It's a bit complicated but you can setup a VPN at home and connect to that. That way all your traffic is encrypted.
The first thing I would recommend is to have your personal firewall turned on. The next thing you want to consider is that you should not enter sensitive information into your browser unless the connection to the website is encrypted. Each browser has a small icon at the bottom to indicate when the connection is encrypted. You can click on this little icon to get more information about the identity of the certificate owner.
As long as you maintain an encrypted session to your website, sniffing the traffic will not prove to be all that useful. Just make sure you keep track of when the site is encrypted and when it is not. If there is ever any doubt as to whether you will be safe, then it is better to err on the side of caution.
One more thing to be aware of - certain public WiFi locations get you to pay by credit card before you can access the internet. This can be common in hotels.
When you try and browse to the internet you are re-directed to a page where you can enter credit card details and then gain access to the internet.
Beware that some scammers have actually caught onto this and created dummy hotspots (pretending to be a hotel or whatever) to collect credit card information.
A slightly more involved but good solution is to run a PPTP Server from a home PC.
It's easy to setup in Windows, and will encrypt and forward any and all traffic through your Home PC and then out to the internet from your home ISP connection.
There is a performance impact, but for email, and standard web applications, it's not prohibitive on modern hardware.