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.