You can use the DMV sys.dm_os_buffer_descriptors to find out how much of the "buffer pool" memory is being used by a given database. You can use the following query in order to get you started.
(CASE WHEN ([is_modified] = 1) THEN 'Dirty' ELSE 'Clean' END) AS 'Page State',
(CASE WHEN ([database_id] = 32767) THEN 'Resource Database' ELSE DB_NAME (database_id) END) AS 'Database Name',
COUNT (*) AS 'Page Count'
GROUP BY [database_id], [is_modified]
ORDER BY [database_id], [is_modified];
With regard to your second question, according to the SQL Server 2005 Maximum Capacity Specifications you can have up to 50 instances on all Editions excluding Workgroup Edition, which supports up to 16 instances. You should also note that SQL Server 2005 only supports up to 25 instances on a failover cluster.
Hope this helps.