The main way of reducing the amount of energy is the CPU governor in the kernel. It can be set to maximize performances (it will rather scale the frequency in the high values), to maximize energy efficiency (it will scale the CPU down) or on demand (it will scale down, until some work is asked from the CPU, at which point it will scale up until it's not needed anymore). Personally, I use on demand scaling, and then I use cpupower
to set up the maximum frequency, so that I have both scaling and energy efficiency. Here is a page from Archlinux wiki about tools you may want (it usually is helpful in other distros as well).
And then of course, there is good judgment. You will consume less energy if you're doing less work, so a minimalist desktop with very few apps running at the same time will consume less energy than ubuntu on Gnome with several rails app running with constant background jobs being processed.