There are some confusions here. Leads and campaign members are not the same objects. What is cluttering your SFDC instance are campaign members, not leads. I have never seen an SFDC instance overloaded with leads, but overloaded with campaign members, it might happen indeed.
Obviously, if you delete the leads in SFDC, all related campaign members will also be deleted. But deleting leads has plenty of drawbacks, and, as pointed out by Kevin, if they are not deleted from Marketo, they will come back. The advantage of deleting leads is to reduce the size of your Marketo database, but this is only true if you delete them from Marketo as well, which is not what you apparently want to do.
The recommendation is to only delete campaign members, not the leads. If your programs are sync'ed, "unsync" them first. BTW, you cannot even see campaign members in Marketo, you can only refer them indirectly in filters and triggers (such as "member of SFDC campaign").
If you delete campaign members from SFDC, and if there is no program sync, the onlyi thing that will happen is that these filters will no longer return any record.
I agree with Grégoire in that it makes much more sense to remove people from Marketo to reduce database size than to do so in Salesforce. If it is just a campaign you are trying to clean up, then remove those leads from the campaign only. If these leads are junk and you want them out of the database, I recommend removing them from your Marketo instance, not your SFDC instance