A filegroup is a logical grouping of one or more database files. If a filegroup contains multiple files, the content of the filegroup (tables, indexes) is spread more or less evenly across those files automatically (at least in most cases, this is manageable only through some trace flags). A filegroup provides benefits regardless of the number of files it contains (default is 1), such as:
- spreading filegroups across separate physical storage devices to increase performance and/or reduce potential points failure (etc.)
- partitioning and spreading single objects (tables, indexes) across multiple logical and/or physical storage devices to improve performance and/or make individual partitions read-only/offline and/or backup/restore partitions separately (to shorten backup/restore cycles, e.g. you can start working on a table as soon as the first partition is online and while the rest is still being restored)
- partitioning tables for sliding window scenarios (switch new/old portions of the table in/out, e.g. when archiving data)
These are just the basic benefits that filegroups provide. A SQL Server database has one filegroup by default (PRIMARY), with one file. Adding multiple files to a filegroup helps with performance and maintenance mostly and isn't directly releated to the above list.
You can learn all about filegroups at http://www.sqlskills.com/T_MCMVideos.asp.
René