Three things can cause this.
1. Your internal phone memory goes below 15mb.
Solution is either delete apps, clean the caches of existing apps, and move apps to the SD card if the app has the permission to do so.
2. Your contacts database is too big. This is what happens when you are too "popular" in social networks like Facebook and Twitter and are syncing them to your contacts database.
Solution is to kill the syncs, and reset the contacts. The contacts will gradually recover itself. Start and keep all your Google contacts before before adding Facebook, Twitter, MySpace, Yahoo and so on.
3. The cache file in one of your apps have become too big.
Solution. This is similar to no. 1 here. Go to Settings > Applications > Managing Applications. Hit the menu button and sort by size. Check the apps with the biggest caches and clean out the caches. Among the noteworthy culprits to this are browser apps and Twitter apps.
1, 2, 3 also tend to share two common culprits --- HTC Peep and Twitter for Android. I may even go on to suggest you don't use both, like clean out the cache of Peep and deactivate it, and uninstalling Twitter for Android, and try another Twitter app, but you still have to watch out with growing cache sizes and avoid frequent or automatic refreshes as that may drain battery. One app I would suggest is to use Twidroyd which stores in the SD and caches there.
Flash takes up a large amount of memory, i don't even update my Flash.
I prefer to use Dolphin browser (Dolphin, Dolphin HD or Dolphin HD Mini) because you can store them in the SD card and they can cache there.