First off, I never restart games that have trained Pokemon in them. I just don't like wasting all that effort.
So when I get the chance to restart(ie. when I've traded everything away), it's because I want to go through again and get some more TM's and other items.
Though with the first and second generation games, my file was erased on several occassions due to the glitches(or so I thought). So I'd just start over hoping I'd be fine the next time.
As for Diamond & Pearl, I only resetted Pearl twice in order to trade over the two starters I didn't choose in Diamond. Other than that, I haven't restarted either since.