I was wondering if there was any way to run multiple Silverstripe sites (all with different themes, databases, users and content) from one source? It would be a great way to set it up to update quickly as by updating one source all sites are upgraded.
Yes, it's possible. I do this for local development of sites, where I use a single SilverStripe codebase for all projects. I even got a script that automatically creates a new site folder for me, creates a new DB, modifies .htaccess and _config.php accordingly and runs /dev/build in the end. Thanks to that, setting up a new Site is a matter of a few seconds :)
This thread might give you some pointers: http://silverstripe.org/general-questions/show/251650
The symlink approach works on Linux/Unix/BSD Systems only. Never tried this on windows, but this might help: http://www.mydigitallife.info/2007/05/22/create-symbolic-links-hard-links-and-directory-junctions-in-vista-with-mklink/
If you want to do this on your Webserver, you probably need shell/ssh access.