
Snapshots
Your snapshots can't guarentee consistancy on an Application level. A snapshot, when started, acts like the power was cut to the server. If you had an MSSQL server in the middle of a series of transactions when you started the snapshot, you're likely to get data corruption. Fortunately, I believe snapshotting is smart enough to wait for (a) file-write(s) to fully complete first before drawing the line in the sand, but I wouldn't stake my business VMs on it.
Backups are good copies of your data, be it databases in a consistant state, or even files in a consistant state (you saving the word doc along with it's autosave hidden file too?), not to mention the Operating System in a consistant state. Snapshots are nice, when timed to hit during non-peak times, but I still wouldn't trust them on my SQL servers for "backups."