Using Eclipse you can retrieve the metadata for Objects in your org and then copy and paste the field definitions which you don't want to recreate manually and then save the changes.
You would then need to set the security on these newly added fields on the Contact object.
For Example, if you had a custom field on the Lead
object for Preferred Phone Number, in the XML file Lead.object
contained within [Your Project]
-> src
-> objects
in Eclipse you will find the field defined similarly to this:
<fields>
<fullName>PreferredPhoneNumber__c</fullName>
<externalId>false</externalId>
<label>Preferred Phone Number</label>
<required>false</required>
<trackFeedHistory>false</trackFeedHistory>
<type>Phone</type>
</fields>
In order to copy this field to the Contact object, simply copy and paste this XML structure of the field definition into the Contact.object
XML file in the appropriate location (where all of the other fields are defined) and then save the Contact.object
file.
If you have not included the objects folder in your force.com project hierarchy, you can add it by selecting "Add/Remove Metadata Components..." from the force.com menu or Project Properties -> force.com -> Project Contents -> Add/Remove