Too many contacts?
Your CiviCRM system is never going to limit the number of contacts you can have, or charge you more for adding more users.
(Some CRM providers do that.)
So there's almost never a reason to delete a contact just because you "don't need them anymore."
Duplicate contacts? Yes, merge those.
Meaningless spam contacts like "Mr. 12345"? Yes, go ahead and get rid of those.
But contacts you haven't heard from in a couple of years? Or contacts who made it into your system because of a very brief one-time interaction?
There's little expense in keeping them, and potential value in retaining them:
If they do come around again, it will be nice to know something about your history with them.
In the aggregate, such records contain information that could be useful in analysis of trends and common behaviors, especially if you’d like to convert more such people into active supporters. (And you would, woudn’t you?)
Yes, you might want to tag these old contacts somehow as “historical”, and you'll certainly want to maintain your mailing groups so that your mass emails are only going out to contacts who still want to hear from you.
But if you're actively segmenting your contacts, as I hope you are, then there's not much reason to completely delete their history with you just because they're not so active anymore.
All the best,
A.
P.S. To be fair, some hosted CiviCRM services (for example, CiviCRM Spark) do put a limit on the as well, but I don't think many of my leaders are using such a service — or are you?