My Galaxy S2 has an annoying thing: apps are stored in the system memory and this system memory is relatively very very small, it's about 1/10 of my total device memory. You can install more apps if you make use of external memory (you need a SD card because the annoying thing will not use the device memory,even if it's 16Gig) however it will still need to store a part of the app in the system memory. If the system memory is 200Mb or smaller, the apps don't even want to install or update anymore! And changing the size of the system memory can only be done if you root the phone, which is something I am not willing/wanting to do.
Also after some time installing and deleting apps, it looked like my system memory was loosing space. Less apps were installed but still I had almost no system memory left.
It appears that even after de-installing, apps leave some data behind in your system memory.
So, this is how you can free more system memory, without having the need of rooting your phone:
1. Go to the phone function
2. enter: *#9900# , you are now in the Sysdump
3. select option 2 (delete dumpstate/logcat
4. when prompted "Delete Dump!" press OK
5. exit the sysdump
6. check your storage! :)
You will see that a lot of memory is now back in your possession :)
But if you want to install a lot of apps, a SD card will still be needed.