Rebooting is kind of the "Let's get back to a clean slate" approach. A digital shaking of the Etch-A-Sketch so to speak ;)
If your computer is frozen, rebooting will "unfreeze it." Sounds simple enough, though the main argument against this philosophy is the belief that rebooting will cause a user to lose work. The reality is, if the computer is frozen, it's already decided if the work is saved, lost, or recoverable.
If your programs are freezing, but your computer hasn't frozen yet, rebooting will make them run properly again. Often times programs generate fatal errors, for a variety of reasons. When this happens, the programs may close out on their own, or "hang" and have to be closed manually, and frequently will not restart again.
Rebooting frees up resources that were previously lost, allowing programs to function normally.
Rebooting frees up resources. Your programs are eating up your memory, temporary hard drive space, and other valuable resources. There is only afinite amount of resources your computer has. When they run out, your computer slows down until it finally halts altogether.
Rebooting "refreshes" those resources, and allows you to continue working at an optimal speed.
Rebooting fixes problems. When you reboot, your computer performs a series of diagnostic checks and often fixes problems without you knowing. So if your computer is acting strange, often rebooting fixes the error.
It helps in troubleshooting. Finally, rebooting helpsin troubleshooting the problem, and ahelps determine if the issue is something that's repeatable. A one time problem, like a program freezing, would not refreeze after rebooting...but if the error occurs every time, then chances are it will require greater troubleshooting to see if it's driver, hardware, corrupt software or whatever...
Hope this helps some (or at least makes some sense!)