• I think they are most useful for testing.

    When I need to test with production data, I restore to a test database from a production backup, and create a snapshot of the test database.

    After I run tests against the test DB, I can restore the test DB from the snapshot to return it to its original condition. This is especially good for testing scripts that make schema changes.