Peter, unfortunately AFAIK there's no automatic workflow for this in Marketo and it's a massive headache. You can only merge 2 (or more) leads manually. So, from my experience,
Solution 1 is merging the leads in your associated CRM somehow and they'll merge in Marketo automatically if the integration is set up correctly.
Solution 2 is for cases when you're not afraid to lose old logs. You can collect the most inactive leads, try to reanimate them then remove those who don't react. They'll be mostly duplicates of your active leads. But you need to be super careful here.