Our leads basically come from 3 areas - Marketo, sales rep entered directly into Salesforce and then for events, we have an app that allows the rep to take a picture of the business card and it converts that data directly into a lead record in Salesforce (saves so much time from having to scan!)
Some of the functionality that we really want is the ability to catch dupes as they are entered and possibly even merge the new information directly into the existing record, whether it is a lead or contact/account. And we also really need the cross-object functionality since our sales group really does not use leads, but we import any new records in as a lead until they are verified.