A filegroup is a named collection of SQL Server database objects and files used for allocation and administration purposes.
SQL Server databases can store their data in one or more filegroups. There is always a "primary" filegroup which is the default storage area. There can be one or more additional "user-defined" filegroups which can also store data. Reasons to use multiple filegroups include:
- Larger storage capacity
 - Better performance by distributing requests to multiple drives
 - Additional security options
 
Drawbacks include:
- Restore, backups, and disaster recovery can be more complicated
 - Additional programming to make sure that all filegroups are used
 
See File and Filegroups Architecture at MSDN for more information and examples.