Site Collection as we know acts as a container for sites, every WSS site is created inside the scope of the site collection. A site collection would have a top site and could have multiple child or sub sites as well.
Now the question could be that why we require such a container for sites?
One reason is administration.
A user assigned as a site collection administrator has full rights on the existing site as well as any other sites that would be created in the same site collection.
For e.g. in a large organization with multiple departments, we could create different site collections for different departments and could assign administrative rights to someone belonging to that department. Now those users with administrative rights would create additional sites, lists, libraries etc.
Second is authorization.
Security groups, users and their authorization rights are defined independently for each
For e.g. in the above scenario we would be having separate users in separate departments. Each department would be having it’s own site collection and set of groups and users.
Third is Back and Restore
A site collection could easily be backed up and restored either on the same location or inside a different farm as well.
Stsadm –o backup –url http://<server name>:<port> -filename <path\name to be used for the backup file>
Stsadm –o restore –url http://<server>:<port> -filename <path\name of the backup file>
This is how it could be moved from development to staging to production server.
Fourth could be related to site elements (features)
We could have different site elements like web parts, custom menus, site column, content type etc scoped at site collection level which than would be easily available to all the sites within it. And secondly it is easy to write a query that spans entire site collection using SPSiteDataQuery.