The problem with upgrading Macs is that they are designed against it. You aren't supposed to be able to do it, they are designed as throwaway products. With a PC, when it gets too slow, I usually take the motherboard, CPU and RAM out and get the new stuff in. Also, every now and then a HDD either becomes full or dies, and I put the new one in. It's a straightforward process not unlike shopping for new shoes. But a Mac is like a laptop, you aren't supposed to just replace the stuff that got worn out or is behind the times. You're supposed to treat it like a single appliance without user-serviceable parts inside, like a toster or a TV.
And it really makes sense, at least for most people, who use the computer to perform standard task it was made to do well. But it's not for people who live on the bleeding edge of technology, using the latest Adobe products. That's why I love Mac laptops, but I'm less thrilled about having the entire desktop machine in a monitor. A desktop machine is the one I upgrade most often because I use it for heavy lifting - massive raw conversions, panoramas, etc.; the laptop is usually a typewriter, and even an IBM T41 was ok for me until it died. However, the tech of today is so good, I really don't expect it to grow exponentially. Even core2duo machines are very quick, expecially when you run them from an SSD.