I'm using miceuz's Chirp I2C sensors here. Found it to be much more reliable and consistent than the cheap analogue sensors, particularly dealing with large outdoor temperature variations. The "rugged" model works a charm.
I'm getting about 12 months off 2x AAA batteries, using some aggressive sleeping. As you've surmised, hook up the power in line to a Digital Out so you're not constantly powering the sensor when your board is asleep. You'll need to wait() about 200ms for the board to wake up after supplying power, and take a few dummy readings each time you wake it for it to stabilise.