I'd like to say once a year... but it turns out when I look back, I make a change about every 3 months.
Mostly because I stay just behind the leaders... this XP2500 I bought was the most expensive processor I ever bought, for $137.
I tend to buy slightly outdated stuff, and sell my old stuff while I can still get a reasonable amount for it. That way I don't have to come up with 6 or 7 hundred bucks all at once.
*EDIT* I was tempted to give P4's a shot this last time, since I was replacing my processor, motherboard, and ram all at the same time. But I'm not too up to date on Intel hardware, especially CPU stepping info and quality motherboards, so I think that's the determining factor on why I chose the XP2500 and nForce2. Plus 1 GB of RAM... all that ended up costing $380, minus about $80 that I'll get for my old CPU and motherboard, minus another $30 I already got for my old RAM. So it ended up costing me $270 for the XP2500, A7N8X, and 1 GB of PC2700 RAM.