As Wouter said, use the highest value pullup (or pulldown) that overcomes the maximum leakage current and still meets the digital input threshold requirements. 100 kΩ is acceptable with with most microcontroller inputs, for example. That would draw only 33 µA with a 3.3 V supply. Check the datasheet to see what is required in your particular situation.
Another possbility is to use a transistor to amplify the current:
This only draws 3.3 µA continuously when the switch is closed. It will draw more when the switch is open.
Yet another strategy is to switch the sense circuit on only for brief periods when needed. Instead of the top rail in the circuit above being the 3.3 V supply, it would be tied to a digital output instead. The micro would sleep most of the time, then wake up periodically to test the switch. It would raise the digital output, wait a µs or a few for OUT to settle, take a reading, and power down the circuit again.
Waking up every 50 ms, for example, will still catch a new switch state instantaneously in human time. With a micro that has low sleep current, the average current draw can be under one micro-amp.