The health monitoring features of IIS enable automatic recycling of an app pool. So an app pool just recycling itself is not necessarily indicative of a problem; it could just be the preventive feature of IIS is turned on. The idea is that if your application has a memory leak or forgets to deallocate something, we can improve overall availability of the application by restarting it every so often, much like how you might restart Windows after it's been running on your desktop for a month and the net effects of small bad behaviors of many applications begin to take its toll.
In some other platforms, you might not notice these problems as quickly, especially in a CGI environment, since the whole framework is set up and then torn down with each page request.
Ideally, you would never have to restart the application pool, and having to do so is usually a sign of some sort of problem. The recycling feature is a sort of liability insurance against our own mistakes, or those "the planets just aligned just so" errors that are very difficult to track down, recreate, and happen so infrequently that they are probably not worth troubleshooting.