The heart of this attack is a rogue DHCP server
As Mr Mackay notes above, this exploit is an exploit of DHCP, not of anything else. We implicitly trust the DHCP server on any foreign network to which we connect, yet that DHCP server can give us a compromised gateway, cracked DNS server, evil DHCP offer options, and scads more dangerous things.
To my mind, there's no reason in the world to give an unvetted server (of any service) such trust. And this is the point of James Eaton-Lee's talk and paper, http://www.jeremiad.org/downloads/Why%20DHCP%20Deserves%20More%20Love%20(release).pdf, which John Thompson made reference to above.
A DHCPSEC protocol mod (like the DNSSEC protocol mod--though one hopes much more rapidly adopted than DNSSEC) is essential to preventing these types of attacks. But I don't see much work happening on this. This appears to be all of IETF's work to-date: http://tools.ietf.org/html/draft-ietf-dhc-securing-dhc-00
Yes, Rob Dobs comment to force your laptop/desktop to use OpenDNS will generally suffice to prevent a DNS hijack thru DHCP, but it's cumbersome for folks who switch around between corporate and non-corporate networks to have to swap DNS settings for each (though there are command-line and GUI tools to make this easier.)