You are very close. The average power is a very accurate way to do this given that you are not pulling such a high current that the effective capacity of the battery fluctuates.
Batteries, Batteries, and More Batteries
There is one very important term, and that is the self discharge rate of the battery. This is dependent on chemistry, but lets say you get a nickel-metal hydride. The self discharge rate is
"20% or more in first 24 hours, plus 4% per day thereafter" if it is not a
low self discharge rate NiMH, which still discharges around 25 or so % a year.
Lithium batteries have some of the best characteristics for self discharge rate and my experience supports this fact. I think battery university has a great site to discuss many different battery characteristics and I often point people there to learn about batteries when they are starting to work with them. If you want to compare battery discharge rates they have an entire article discussing the phenomena.
This is a bit around the point, but I always try to make this point, when you measure battery voltage you need to have it under load. This varies with chemistry, but it is paramount in lithiums. I had a coworker placing bad coin cells in our devices and using them because the coin cells showed almost full voltage with no load. Under a load of any amount(10kohm aprox .2mA) they were flat dead.
Your Microcontroller and You
As you are dealing with using the manufacturer sheet on leakage current there are also many different issues you will have to deal with to keep to those specs that are probably also work thinking about. The biggest I have seen is a floating input. Many engineers will leave unused pins as inputs thinking, "Hey, what harm can this do?" Quite a bit if you are talking microamps. A floating input will have its transistors changing state constantly and the fluctuations cause a power draw difference. We once had a reduced lifetime in a product because we had an error that left 2 pins floating causing our standby current to more then double on our MSP430. You need to drive all of your pins to output and let them hold a state.
It is easy to miss when doing these calculations things like wakeup time. I seem to remember our MSP430 had a non-negligible wakeup time if you were doing it very often. It also had a larger power pulse for just a moment as it came online. Our little homespun RTOS had to try to take this into account and if the shutdown was less then X milliseconds we skipped it with NOPs and saved some power.
If you are looking at a very long life product, you are going to need conformal coating. The oils in your skin are not an issue immediately, but with time they form a lightly conductive material on your board. Conformal coating protects your board from this little current sucking side affect.
Read any app notes they have about low power operation, it probably covers issues like the pins need to be held as output and many other important and useful facts.
Last but not least, Dont let yourself get relaxed just because you have read the app notes and everything seems okay after a week of running your product, you have to do as clabacchio says, you must measure and make sure. You debug your code normally, this is part of it, you need to find out if you made a mistake that is causing your idle current to be mAs instead of uA or even just if you did what we did and a pin is floating on accident. Make sure you use buffered measurements when you do this, if you have a large leakage on your device taking the data you can make a mountain out of a molehill when testing. Also, never forget about pullups, they are little power hogs if you are not careful.
The setup in your answer is a bad one.
First you parallel two batteries, which you shouldn't, because their voltages are never exactly the same. Their low internal resistance will cause a current from one battery to the other. So feed three LEDs from 1 battery, and the other three from the other.
Then you place all LEDs parallel, which means that you lose (12 V - 3.2 V) x 20 mA = 176 mW per LED in its series resistor, while the LED itself uses only 64 mW. Total power loss is more than 1 W. That's because the large voltage difference between battery and LED. The best way to get a longer endurance is to keep losses in the series resistors as low as possible. So better place two times three LEDs in series, so that their total current is 40 mA instead of 120 mA. The power loss in the series resistors is then (12 V - 3 x 3.2 V) x 20 mA = 45 mW per 3 LEDs, or 96 mW in total. That's less than 10 % of the power loss for all LEDs in parallel.
Then your batteries will last 100 mAh / 40 mA = 2.5 hours or 150 minutes. This is pretty optimal. The batteries' capacity is 1200 mWh, and the LEDs consume 384 mW, so with an ideal conversion you can get a little over 3 hours out of them. But the most efficient conversion using a switching current regulator will get you maybe 85 % efficiency, and then you only gain 9 extra minutes.
edit re comments
An alkaline battery's voltage quickly drops by 10-15 %, and then remains more constant for a great part of the discharge cycle. So either you calculate the resistors for a larger current at the start, and 20 mA for the rest, or for 20 mA at the start, and a lower current later on. The latter solution will give you a longer battery life, but a bit less brightness.
jippie suggests to use a switcher anyway to get more out of the batteries, and it's a thought. You'll have to place the batteries in series to get 24 V to allow a voltage drop as high as possible. The larger Vin/Vout ratio of the switcher will make it less efficient, but overall you should get some extra time from the batteries.
Best Answer
Using $$ 1 \text{ mAh} = 1 \text{ mA} \cdot 3600 \text{ sec} $$
you can calculate the average as:
$$ 0.05 \text{ mA} \cdot 3473 \text{ sec} + 56 \text{ mA} \cdot 120 \text{ sec} + 0.44 \text{ mA} \cdot 6 \text{ sec} = 1.9 \text{ mAh} $$
You can only use the number above to make a crude estimation how long the battery will last.
One reason is that for a high amperage the battery life will be shorter than the product mA times supply time.
Another reason is that the battery will self discharge.