If the lead does not exist then a new record will be created and with that what ever lead source value it gets.
If the lead already exist, then the lead will be updated with any new collected information or behavour.
You must make sure that your lead source field is blocking any updates to prevent being overwriten when the same lead fills out forms etc.
This is is the admin section of Marketo, look for lead source and choose which method to block (i.e. flows, API, web forms, CRM etc). In your CRM you should do the same.
I would recommend finding an example of each of your lead sources in Sugar and and then looking at the system values that are in displayed in MKTO. As lead sources is something that you define, as long as you are using appropriate values there should be no issues.
That make sense? Let me know if that answers your question.