Gnus is a package for Emacs. Yet, the most people use it for news and mail reading, so that's where the focus is. Gnus can get it messages in a number of ways. For news this is usually a nntp-server, a local spool, or SOUP packets. Or you can fetch them from multiple servers and other sources.
Mails normally come from a local spool.
Groups Messages are organized into groups. For news, this is automatically true, mail is split into one or many, according to your criterions. This is normally used to seperate messages from mailing-lists or acquaintances from miscellaneous mail. In this way, mailing-lists look like newsgroups. Newsgroups can even be combined into virtual groups.