fetchmail does what its name means --- it fetches mails from a remote machine.
If you want to receive an e-mail from the outside of your machine, you must have a running machine with internet connection when the sender sends it. This may be too expensive or simply impossible. With fetchmail you don't need 24-hour internet connection to receive e-mails.
An internet service provider (ISP) usually has a special server which receives and stores e-mails sent to you. fetchmail queries that server and downloads e-mails stored in it. Then you can read them on your machine.
fetchmail is not for a selective download. From fetchmail FAQ: [You can do spam filtering better with procmail or maildrop on the server side and (if you're the server sysadmin) sendmail.cf domain exclusions.] [fetchmail's job is transport, not policy, and I refuse to change it from doing one thing well to attempting many things badly. One of my objectives is to keep fetchmail simple so it stays reliable.]