I think using a resistor to lower the
current will use up battery life. Is
this true?
The first statement is hard to give a yes/no answer to. Technically it uses up some of the power on itself, but as the resistance goes up the power goes down (the current also decreases, which is what matters in a battery).
How does it use up the
battery if the current is kept small?
This is a very very messy statement. "Small", that means something different to every person. If you mean small, as in negligible, then it can be ignored, but I doubt this is true with a circuit counting uA. For it to be negligible a good rule can be that it's average current is less then 1/10 of your overall system current (I am fields, 1/10 is enough for 1/infinity).
Is it the power dissipation?
Yes, in the shortest answer. A battery has a voltage associated with it, which you normally know up front. Most devices have a current that varies as the voltage is varied, but since you know the voltage you can tell its current draw. Since the battery's capacity is measured in AH or mAH then you are set. take capacity, in AH, and divide by how many A your device pulls and you have your lifetime in hours. Number big enough? you are set. Gonna die 3 weeks early? now you have to find a way to reduce your average current draw, or get bigger batteries.
I think using a diode (and smaller
resistor) will still use up the
battery (LadyAda said something like
"any linear device to lower the
voltage uses the same amount of
power"). Is this true? Is it the same
amount?
As stated before you effectively have a current budget. if your average current draw is increased then you have lost battery life.
Can I lower the voltage "for free",
that is, without wasting too much
power? How can a regulator IC do what
a resistor or diode cannot?
Yes, if you use a device like an LED Driver then it can do the trick. Most of these are Switching mode power supplies. These are a relatively advanced concept in electronics, do not beat yourself up trying to understand it. Just understand that it cheats. It will have an efficiency in the 80 or 90% range. You can calculate the power consumption of your device and then factor in efficiency to get the real power draw. This can then be divided by voltage and should correlate to your average current draw.
My advice
There is an easier way. As Joby was talking about, PWM. But i would not suggest using a 10% PWM, or even a 1%. Instead, blink your LED for short periods to let you know of important events.
If you want to check your device is sleeping, blink it every 1 second wakeup. If you are transmitting when rs232 is connected, blink it every time you TX a "packet". This can give you "on" times of milliseconds every few seconds. If you think of this as a basic PWM, then you are getting less than a .1%. if you are pulling 20mA to blink(quite bright) then you are pulling an average of 20uA. Go to a 2mA diode, and you are doing 2uA average current. if you blink every minute, you get to divide by 60 on that: 1/30uA.