I get about 3000 emails a month (a lot of them are server notifications if you are wondering) and I like to keep all my email because I do frequently refer to older emails. I think of my emails as a database that I can search for conversations, attachments and personal history. Gmail is a great way to keep all of your email but Gmail has limits, beyond which you need to pay a fee. Other IMAP type accounts like iCloud have similar limits.
What I like to do is to keep all email older than 2 months on my computer rather than paying for more storage. To do this in Apple Mail I set up a simple rule like this:
To use this rule, I do a Select-All on my inbox every month or so and then do Message->Apply Rules and let it run. All emails older than 2 months get moved from my Gmail account into an archive folder on my Mac. I create a new archive folder every year and update the rule to use the new one.
It is important to note that even though this rule is applied to every incoming email (as are all rules in your rules list), no incoming email will ever be moved because incoming email will never be older than 2 months old. That is why you need to Select-All and Message->Apply Rules manually. I suppose you could schedule this activity in your calendar but for me it’s just one of those things I do when I see that the number of emails in my inbox is getting large.