Database snapshots are a quick way to create a read only copy of your database. A database backup might take several hours to run depending on the size of the database, but a snapshot is normally created in an instant even for very large databases (multi-terabyte). Snapshots are created very quickly because data is only copied to the snapshot file when it changes in the source database. The size of the snapshot file will start off very small and will grow in size as data is updated in the source database. If you view the properties of the snapshot file in Windows, you will notice that the "Size" is reported the same as the original database file, but the "Size on disk" is reported much smaller.
The snapshot database is available to query just like any regular database, but the database is read only. Database snapshots are NOT a replacement for regular backups, but they can compliment your recovery strategy and they also have many other uses. There are a number of limitations that apply to database snapshots, but despite this it's still one of my favorite new features added in SQL Server 2005.
The syntax for creating database snapshots is relatively straight forward, but it can take some time to construct for databases with a large number of files. Also, if you plan to use the code again at a later point in time, it might fail if any of the logical filenames have been renamed or if files have been added/removed from the database. After you create the stored procedure, you can create a snapshot quickly with the following code:
exec spCreateSnapshot @database='{database name}',@SnapshotName='{snapshot name}',@folder='{folder to store snapshot files}',@debug=0
If you would like to know more about database snapshots, I would suggest this article as a starting point, following the links at the bottom as required.