I’ve had CHDK on my Canon PowerShot G11 for about a month or two now. CHDK is a custom firmware that sits on top of the default Canon firmware (it does not replace it!) and allows you to do a ton of things that your Canon camera normally can’t do. For example, my G11 can only take exposures of up to 15 seconds. With this firmware, I can take incredibly long exposures if I want to (we’re talking up to hours or days).
Even more awesome though is that you can use CHDK to run scripts. I currently have two really awesome scripts on my camera. One is for time lapse — it will take a photo every X seconds/minutes for however long I want. Great for sunsets and more. The other is a motion detection script. It will sit and watch the scene and take a photo or video any time the scene changes (you can control sensitivity). It’s even good enough to catch lightning!
If you have a Canon camera, I highly recommend you taking a look at CHDK.