What's the difference between a NANDroid backup and an ADB backup? Could anyone explain the difference between a backup made using NANDroid and a backup made using ADB i.e. using the adb backup command? I've read that both are capable of creating full system snapshots but I haven't been able to understand the difference.

The more technical the answer, the better. Thanks.
The answer can be found in the backup  tag-wiki. In short:


ADB Backup is the newer file based backup scheme introduced in Android 4.0. It creates a backup of the file system tree and files. Better explanation would be it's a logical backup, as files are mainly grouped by apps. Side-effect is that files not having a clear relation might be missing from such a backup. It's secure, because you need to unlock the lockscreen first to proceed and one can also encrypt the backups themselves. Backups can be done online. This method allows finer-grained control over what gets backuped and restored.
Nandroid Backup is the older partition based concept, i.e. it creates images of the file systems (think of Norton Ghost or rather the dd Linux tool to have something to compare with). A better term here would be physical backup, as it is a blockwise copy. A recovery mode that supports this method (e.g. Clockworkmod recovery) needs to be installed and started. Backups can be created and accessed without entering the lockscreen passphrase. This method is an all-or-nothing approach, restoring individual apps is not possible (without 3rd party support by Titanium Backup Pro, for example)


Find some more details in above mentioned tag-wiki, which also links to further ressources.