I have a suspicion that it might be possible for Bitcoin's network connectivity to get into a bad state. When it was in this state, I think that it stopped accepting incoming connections. My active connections hovered under 15 connections and although my blocks did update, I was generating almost zero blocks whereas I had been generating a fair amount beforehand. Restarting Bitcoin seemed to fix the problem. Of course it might have been the fault of my operating system, my router, my ISP or my imagination. This problem, whether real or imagined, happens very infrequently as far as I can tell. Bitcoin chugs along very nicely most of the time.
On IRC, solar mentioned the possibility that Bitcoin might on occasion get into a state where each thread does many fewer calculations than usual.
It's all just speculation, but if you have the feeling that Bitcoin isn't working quite right, I suppose it can't hurt to restart your client. ;-)