The following are the Error code presets that have been built into the programming of the canon range of DSLRs, and I believe to be generic throughout their entire series.
Canon Err 01
Simply remove the lens, and clean the contacts where the lens attaches to the camera, it’s a good idea to clean the contacts on the lens as well. I useful tip I found online was to try doing this with the rubber part of a pencil, but always hold the camera and lens upside down, so the rubber does not fall into the equipment, and wipe clean. Err01 is an issue I have personally experience with a 350D.
Canon Err 02
If your compact flash memory card become corrupted, then you will be presented with the Cannon Err02 code. Change the card and you’ll be fine, you may be able to fix the card at a later date by re-formatting it.
Canon Err 04
This one is a nice and simple fix, delete some of the images on your memory card, as it means your Compact flash card is full.
Canon Err 05
Err 05 can be a tricky one to fix, as it means that something is clearly blocking the built in flash that the camera has. Look at your camera carefully though before making any irrational decisions, because it could simply be the likes of your camera strap being crossed over the top of the flash, eliminating it from being able to pop up.
A good idea with this problem, is to change batteries as well, because it could be entirely due to your battery not having enough power. Take it out, give it a good charge and then try again.
Note: There is rumour across the internet, and I’m sure that if you have this problem and are running a Canon XT, that the flash moves out of alignment slightly and no longer becomes flush, so that a little sanding could be used to sand down the plastic housing of the XT so that the flash runs smooth again. (This may be true or may not, and we do not take responsibility for your actions, act carefully and use common sense).
Canon Err 99
Usually anything that does not fit into the other errors, will throw out this generic error message, have a look at your camera carefully and try to determine what it could be. Keep in mind, it could still be any of the errors above, just occurring in a different way to how the camera was programmed to handle them. A good example of this, is how I received err 99, when the problem was actually err 01.