These are my recommendations, as they are the enterprise-tier platforms that you can grow into over time. However, if you don't need something like these, you can also look at ipMonitor. ipMonitor is a great tool also, but is entry-level and limited in capability.
NPM - there's a virtualization component built into the NPM core that you need for the ESX monitoring. It's not as extensive as Virtualization Manager, but it gets the job done for most smaller (even mid-sized) shops.
SAM - for the web/app monitoring, server (VM and physical), and DB monitoring. Depending on your DB platform, you might have to build a custom SAM template; but there are canned templates for Oracle and SQL that you can model after.
How detailed do you need the SAN monitoring to be? Storage Manager is fairly pricing for what appears to be a small shop, but it depends on your needs. NPM and SAM can provide disk usage and disk I/O stats from the servers, so it might provide you what you need.
Again, these are my recommendations for any shop that is getting started.