A SQL Server is going to use at least 500mb for core services independent of what the site database is using, an asp.net web app in decent shared hosting will be typically be allowed 200-250MB. The way asp.net garbage collection works to recover memory means it will use more ram if more ram is available but it can get by with 200-250mb per site.
a server with 2GB of ram is a a very bare bones machine, I would not expect to run more than 4 sites on that, you are almost better off in shared hosting unless you get at least 4gb of ram so that you have more headroom. you would be surprised how much difference it makes having 4 gb vs 2gb.
It does not sound like it is unexpected use of resources to me, it sounds very typical for asp.net.
I do not think you will find any memory leaks or unclosed db connections in mojoPortal, maybe in custom code of your own. nothing in mojoPortal uses session state, we are careful to turn off viewstate on labels though that is mainly to reduce the viewstate payload in the page than to reduce memory use. By default we do very little caching, mostly the sitemap and sitesettings are things that get cached.
I don't think you will have any luck trying to make it use less resources, you would get better results by increasing the available resources or only hosting 1 site on that machine