Are you specs 16 GB RAM and 4 CPU cores for a VPS or the specs of a co-located bare metal server?
Expect about 20 to 30% performance degradation if you go with a VPS, and if you have a choice in VPS virtualization technology, opt for KVM (e.g. Linode) over XEN (AWS), you'll get faster disk I/O for usually less cost and the same stability.
Are you planning on creating a VMs (e.g. KVMs) for each of the sites or putting all sites on the same bare metal server?
See the first question, if you're already using a VPS, it's not recommended to run a Virtualization stack inside an already virtualized VPS, but if you're getting a bare metal server, I would highly recommend using a virtualization layer to ease the management, e.g. you might want to reboot only one site, but keep all others online, that's impossible to do if you put them all without virtualization on the same bare metal server. Similar issues hold true if you needed some special PHP version or hold back one site that falls behind e.g. still uses Drupal 6 while the rest of them are already on Drupal 7 as the CMS.
What do mean by dedicated database server, are you using an external service like Amazon RDS as a dedicated database backend, or do you plan to host the database on an entirely separate server while the webserver is the machine for which you've provided the specs, or do you plan to virtualize the database server as dedicated VM inside the bare metal host?
A good rule of thumb is for a fairly average CiviCRM database of about 40k records with 5 staff members needing backend access, a 2GB RAM allocation is quite sufficient per site which can include both the webserver and database server inside the same VM if the disk has fast I/O (e.g. SSD drive.) When virtualizing the database server as a separate dedicated database VM, think about allocating at least 1 GB per about 50k records for each instance of CiviCRM, and about 1.5 GB as the base minimum for each web front-end VM.