Optimisation
I'm surprised that no one has yet mentioned a powerful solution, that of rebuilding the prebinding from Terminal or some third-party system utility program. Many cases of slow launches have been cleared up or at least ameliorated somewhat by doing this. Installers for programs normally run this after installation, but only for the files that they install.
To do this, open Terminal and type:
sudo update_prebinding -root /
(with an underscore between 'update' and 'prebinding,' a dash before 'root,' and a slash after space at the end), then press return. You will be asked for your user password; type it in and press return again.
I do grant that hard drive space will almost certainly also be a contributing factor. Perhaps I will not inconvenience you overmuch if I share a story from my experiences. I used to own a Power Mac G4 with 16 Gb or so of drive space, but only a few hundred megabytes were available. Warning messages that my drive was almost full constantly popped up on the screen. One day it became corruped so badly that, if I recall correctly (this was years ago), it refused to boot. According to the tech support person whom I called, the system must have overwritten essential parts of itself with such limited space available. I eventually solved it by booting from a different drive, but... ugh.
Long story short, rebuild the prebinding, repair permissions, and, if you have fewer than four gigabytes available on your drive, buy a new, larger hard drive if you can at all afford one.
I hope that this helps, somewhat, and hasn't put you to sleep with the long bedtime story in the middle.
Cheers,
Andrew