To understand what to do about fixing a slow-running computer, one must first consider the potential factors involved in impacting system performance.
Disk Space (Total vs. Free):
There's a threshold below which it probably doesn't matter how much data you have on your hard drive. However, once you start really loading the HDD up, you're basically starting to interfere with Mac OS X's ability to generate, keep and use swap files (these are the container files used for virtual memory functionality). If you impact this sufficiently, you will notice system performance degradation, but more likely than not you'd notice stability issues first.
RAM (Total vs. Free):
Other than CPU usage (see below), this is generally the single biggest culprit in performance reduction of otherwise normally-functioning systems. It may be time to upgrade your RAM, or it may be you just have too many things being held in it (that is, you've left large documents open in the background, or you're running apps that are just memory hogs, or there's a memory leak somewhere, etc.) Usually, if this is the case, simply rebooting will resolve it.
CPU Usage:
The more things (OS, drivers, so-called "userland" apps, etc.) you have running, the more of a performance hit you'll get, no matter anything else about your computer. There are various utilities you can use to see what's going on, or you can just bring up a terminal window (Applications > Utilities > Terminal) and type in "top". That will bring up a list of the top things on your system, and show you amongst other things their CPU %, which tells you how much of a load they're putting on your system. (Oh, and when you're done using top, just type "q" to quit out of it. Then go ahead and quit out of the Terminal app.)
Bad RAM and/or Bad HDD:
Too often these kinds of hardware issues are nebulous in their symptomology, and are like that itch you can't quite scratch. Depending on the degree and/or type of failure, your computer may still pass it's
POST, and your HDD might still pass
SMART. Typically there will be some degree of corrupted data associated with these failure modes, but often as not what gets corrupted (but is beyond your ability as a user to perceive directly) is the OS and/or swap files, etc. Failed HDDs in particular can have the symptomology of slower and slower data access or data writing speeds.
Now, I'm not trying to scare you or make you go out and buy new RAM and a new HDD, but you should be aware of all the factors involved.
Ultimately, if you've tried every other diagnostic and troubleshooting approach, nuke and pave your system, and see how it behaves. IF you go this route, don't put the computer back into a production mode until you are absolutely certain there are no further lingering issues. You do that for two reasons. First off, if the HDD (or RAM) is in the process of failing, all you're going to wind up with is more corrupted data, data which might well be important to you. Second, when you start adding things to the system, you add to the complexity of the situation, and prevent yourself from being able to truly isolate the problem.
Having been a tech most of my adult life, naturally I've run across numerous instances of failed hardware. All that means is that I've had a higher statistical likelihood of seeing a hardware failure since, on the whole, hardware failures are generally pretty rare. In MOST cases, this kind of problem is either software-induced or user-induced, not hardware-induced.