Whenever I feel my computer cannot handle a new program and a simple upgrade will be more expensive than a whole new computer, I'll get a new computer.
I buy what I consider the best price/performance spot. I never get the top of the line CPU and spend hundreds of dollars more for a 5% speed boost. I buy a whole system at a time - each component in that system had the best price/performance ratio. That new computer replaces my main computer. That sends every computer one spot down the line - my old comptuer goes to my wife, my wifes computer goes to my parents (or her parents), their old computer goes to their relatives, etc. That way a dozen people all get an upgrade. The very last computer in the line is taken apart and used as spare parts (some parts like a HD or memory goes immediately into any of the computers that can effectively use them).
I do the same thing at work. Anytime one person gets a new computer, his/her old computer gets moved down the line and everyone gets an upgrade. Everyone gets a larger monitor, everyone gets more HD space, more memory, a faster CPU, etc.
If I didn't buy whole systems at a time, and just bought one upgrade part, then usually only one person gets the upgrade. So only rarely will I'll buy an additional part for one computer - such as another stick of memory. But that only occurs when that computer meets a program it can't handle very well.