Hi,
As Peter indicated the router either has enough memory for some purpose or it doesn't.
If it runs out of memory you get log messages about it unless you have turned them off, and it will most likely stop working in some respect or other.
If you have enough, adding more will result in you having more than enough. This is a waste of money unless of course you need to have some "upgrade" room.
One thing to watch out for is memory fragmentation. Smallest should usually not be much lower than Lowest. I have seem memory allocation failure messages when Smallest gets below about 150k.
Routers with crypto and Inspect do seem to fragment the memory more than other IOS that I have seen. I guess it's the Inspect.
I have changed the I/O % benificially (i.e got a router to boot that otherwise wouldn't) however you NEED to make sure that you will not run out of IO memory. I guess it won't boot if it does. I suspect that it is statically allocated on boot to the interfaces and so NEVER changes for a particular configuration.