+1 to the prior poster.
I use multiple instances to use one physical machine and OSE (Operating System Environment) to serve up multiple copies of "the same" application database for different uses; one instance per developer, and the developers can restore from backups or make backups within the disk quota limits as they see fit (create a known starting point with whatever test data they need, and run tests from a well known starting point over and over).
For real production when you can combine databases properly (i.e. they all have different names), I'd use a single instance, and allow whichever needs it to use the resources required. All the usual caveats on virtualization apply; don't put two apps that need the full physical power during overlapping time periods on the same hardware, or they'll slow each other down. If one needs it Monday mornings, and another needs it every afternoon, you're fine. If they both need to meet SLA's at the same time... don't combine them casually.