AFAIK, there is no way to recover lost memory other than a reload. However, if you router is leaking memory, then you might like to investigate why. It is almost always due to software bugs, and it usually can be rectified by updating the IOS.
If you do reload the router, do a show mem a couple of minutes after you start, as a benchmark, and then check it at daily intervals and see if the free memory is in fact going down, and at what rate.
Kevin Dorrell
Luxembourg