I can't really comment on how SQL server and Exchange server allocate resources but the biggest issue with those servers is going to be the memory. On the server I mentioned above I have IIS 6, SQL 2000, and exchange 2003 which is only used for our intranet sharepoint site and to hold about 10 exchange mail boxes. Here is what is being used up:
Code:
Total Physical Memory: 638 MB
Available Physical Memory: 85 MB
Page File: Max Size: 2,107 MB
Page File: Available: 1,416 MB
Page File: In Use: 691 MB
Obviously using that much of your page file is not a good thing in large enviroments, but I have not noticed any kind of performance issues. Sharepoint loads instantly and I have not seen any performance issues with exchange. This is just to give you an idea, this could be very different in your situation depending on how active your server actually is and what kind of applications you run on it. Perfmon is a great tool for determining how many resources you are really using, run it for a while keeping close attention to your page file, your memory usage, and your CPU usage.
The biggest problem you will run in to with a VPS is going to be how much RAM you will get. For around $50 a month you probably won't get more than 512MB. If you do decide to host your own server if you throw 2GB of ram in there, which is insanely cheap these days, I'm sure you'd be fine. But again, confirm this with perfmon.
The biggest problem with going the one server route will be if you are running an active directory enviroment. This will also be a problem if you want to host it remotely as you now have to deal with VPNs and persitent connections. The reason this will be a problem is you now don't have any kind of back up server. So any time you have to reboot your entire DNS infrastructure, all your file shares, and everything else will be down for your users while the server reboots. This shouldn't be an issue if you aren't dealing with a large network and a few minutes of down time each month is acceptable. The other problem is that if this server crashes you now don't have a backup domain controller to seize the FSMO roles and the entire active directory infrastructure will have to be rebuilt, not a simple task by any means.
So as you can see there are up sides and down sides to doing it this way and you will have to decide what is best based on what you are using your server for. Hope that helps.