We are having the same issue, and it's not with different email addresses, and pre-filled is enabled.
When a contact fills out a form, it immediately creates a lead. It's really frustrating as its causing customers to start getting prospecting emails.
Any other things to look at the cause of this problem?
If it's the same email address, then it shouldn't create a new lead. For customer-facing emails, you could try including the "SFDC Type is contact" filter; likewise, use "SFDC Type is lead" for prospects. Or, build customer and prospect smart lists with this included to save you the time of doing it with each send. It might not completely solve it, but it may help prevent customers from getting prospecting emails.
99% of the time I see this happen its due to using a personal email address. The best way to avoid it in my opinion is to block personal email address using the method Josh and 53504 were talking about.
Look into the lead assignment rules. If you are using the SFDC default rules and you assign leads to a queue, that could cause duplicates.