For example: If a lead comes in but it is already a contact can I merge those two records even though they are in different modules?
I recommend to convert the lead immediately. The Wizzard will offer the contact as an existing duplicate ( https://support.sugarcrm.com/Documentation/Sugar_Versions/9.0/Ent/Application_Guide/Leads/#Duplicate_Record_Check ). Confirming this and continue will link the lead to the contact and mark it as converted.
In case of the same lead comes in again from any source you will have a duplicate check notification for both, import and manual setup on the leads module and you know this lead / contact already exists.