(Finally. I've always wanted to write a blog post with N ways to do something.)
To begin with, I reject two obvious steps: run a different, lighter distro; and don't use KDE.
I use Ubuntu on my laptop for one overriding reason: hardware compatibility. Slackware was my first distro, and I loved it. I love it still. On my desktop it worked fine. On my laptop—it didn't. I spent insane amounts of time—months—trying to make X work on that laptop. I learned a lot about Linux. I learned so much about Linux that my next distro was… Cygwin.
I never ever want to go through that again. I never ever even want to be reminded of that experience again. On a desktop, I am willing to try other distros. Never on a laptop.
As for KDE: this is my caprice. I just like KDE better than GNOME or Xfce. It just seems better thought out. Take a simple example: shutdown scripts. It's easy enough in any desktop environment to create scripts to run on startup. Only KDE provides a straightforward facility to run scripts on shutdown. (This saves me having to explicitly kill the Emacs daemon every time I shut down.)
(To be honest, KDE4 has been severely testing my patience, but they seem to have their act together now. I rarely have to switch to a virtual console and pkill -9 kscreenlocker anymore.)
(I know there's a whole world of tiling window manager's out there, but they strike me as gimmicky, like most efforts to Emacsify things that aren't Emacs. I love Emacs. I'm writing this in Emacs. But anything beyond readline compatibility just crosses my wires—frustrates me with false expectations. I want all of Emacs or nothing.)
Anyway, there were supposed to be instructions.
I assume you know the basics: turn your modem off when you're not using it, lower the screen brightness, leave the sound off, etc.
The first way to save power: turn off the Flash plugin. This isn't Ubuntu-specific, but it's the best place to start. Just having the flash plugin on—without having any Flash video playing—accounts for half the processor activity on the machine.
(In Opera you can toggle plugins on & off with two keystrokes: <f12> u. I assume there are ways to do this in Firefox. Google it.)
The second way to save power: lower the swappiness. Swappiness weights how likely the kernel is to use swap. The default for Ubuntu is 60—absurdly high. On a laptop you never, ever want to use swap. The performance penalty of not using swap is always preferable to the battery drain of requiring the hard disk to mimic RAM. You can try this out:
sudo bash
echo 10 > /proc/sys/vm/swappiness
(You could set it to 0 but this might screw things up if you run something very demanding, which you shouldn't do, but you might do without meaning to. I keep it at 10 and the machine never uses swap.)
(sudo bash in the above is a gutless root shell. You could sudo su root or sudo -i too but this won't work with your usual sudo make -blt sandwich approach.)
To make this permanent put vm.swappiness = 20 in sysctl.conf
The third way: mount /tmp as a ramdisk. This is as simple as adding a line to the end of your /etc/fstab:
tmpfs /tmp tmpfs defaults,nosuid,size=1g,mode=1777 0 0
N.B. Whenever you are watching Flash video, the video is being written to /tmp. If you must use Flash on battery power, this makes it a lot easier on the battery.
(You could also write a autostart script to create a series of folders in /tmp & symlink all your browser cache folders to them. Exercise for the reader.)
The fourth and fifth ways: powertop and laptop-mode. Powertop is a neato program that analyzes processor activity and show you what's hogging cycles (like Flash). Laptop-mode (included but deactivated in Ubuntu) is a neato kernel feature that spools and spaces out writes to the disk. They come together in this list because although Powertop will suggest and execute changes to your system, it can't make any of these changes permanent. Laptop-mode lets you do that. First run powertop. Write down all of its suggestions. Then go to /etc/laptop-mode/conf.d/ and start poking around. All of the changes laptop-mode suggests can made permanent by altering the appropriate configuration files here.
(And turn laptop-mode on: in /etc/laptop-mode/laptop-mode.conf set ENABLE_LAPTOP_MODE_ON_BATTERY=1.)
And that's five. With just these five changes I actually get the battery life (under normal use) that the ad said I would.