Every so often Vista decides that I have “Local Connectivity Only”, which is a very odd way of describing the situation where DHCP can assign me an IP address, but I can’t even ping my gateway.
It eventually just starts working.
Update:
Problem solved! I discovered that the problem correlated very highly with unplugging my laptop from the power outlet. It looks like Vista’s default power saving policy goes a little too far. In the advanced power settings menu I have now selected “low” power saving for my WiFi device, rather than the overzealous “medium”.

Does that IP address start with 169.254.? Then DHCP didn’t really assign you an IP address; see this explanation (if you can stand the font :) )
Gulli,
No it’s actually getting an RFC 1918 address (192.168.x.x) from my DHCP server. I can even see it in the log files. I can’t explain it.