This is what i would do before doing a facotry reset.Grab Astro file manager from the market back up all the apps you can.It won't back up the data,just the app.Then uninstall all of them,reboot.Run your phone as normal for a little while.If the problems don't come back then you know it's a app doing it.If the problems still occur then i would try like stated above and factory reset.The reason i say remove all apps is cause one of them could be sneaking up in the background and you just can't see it.
Another thing you can do is use a app to monitor your ram.I suggest Android System info from the market.It's a nice,but simple app.If you open it up and go to the second tab,it has another area to show your memory.It also has a area that will tell you the "threshold ram" If youo are getting to close to that number you will see extreme lag and lockups.If you notice the phone getting close to that reboot.