In the early days of CRM, it was simple: people were people and companies were companies. Adding a new person to the CRM database was pretty unambiguous, whether they came in through direct entry or via integration across the clouds.
Two forces have mucked this up. CRM systems got more sophisticated, creating leads to supplement contacts. Just to spice things up, some CRM systems created the notion of a person-account for B2C use cases. Then the sales guys stirred up the pot by asserting that leads were really early-stage opportunities or even accounts...even though these objects must be kept separate in any CRM system. And for fun, they added the named account model, which makes most leads into contacts even though we'd call those same people leads in a standard sales model.
So now the rules of how to insert new people into CRM records are about as straightforward as the rules for a game of Fizzbin (Google it).
Lead vs. Contact
Getting back to basics, you might ask "why do we even need leads anyway—why not just make everyone a contact?" Actually, there are situations where this is exactly right (and of course, others where it's exactly wrong). As a generality, leads are people we know little about (other than some level of interest), and contacts are people we've spoken to and know a lot about. Typically, leads cannot be attached to accounts, but contacts must be.
Leads have some special properties in CRM systems, most notably: (1) the system assigns them to reps via rules, and (2) they can be owned by a queue—not just by an individual. Both of those features are really valuable if you have a lead nurturing group (often called telemarketing, telesales, or inside sales).
If you're a pure B2B company with no lead nurturing group and a pure named account model of selling (for example, in aerospace/defense), you may well be able to lose the leads table. Essentially, everyone is a contact because you're only interested in the employees of your named accounts (which are pre-populated in the system).
In most B2B companies, however, even if you don't have a nurturing group you can't blow away the lead table. Marketing systems from other clouds (such as Google Adwords, e-mail blasters, drip-marketing systems, and social networking tools) almost always work on the lead object. Those cloud integrations with your CRM system may not allow you to use the contact object instead.
Further, if you're a B2C shop and use person-accounts, you'll really regret getting rid of leads.
Person vs. Accounts
In the B2C world, customers are individuals. Even if they are part of a company, they are not treated in the system that way. This issue is increasingly common with companies doing e-commerce and accepting credit cards: each purchase is done by John Doe the credit card holder, and there's no real account to pin him to. In some systems, you handle this by attributing the company named "individual" to all those contacts.
The person-account was developed to make this easier, using a hybrid object that has the characteristics of both a contact and an account. When viewing a person-account, there essentially isn't a contact: there's only the account. So when inserting new contacts into your CRM system, if you use person-accounts you're actually inserting accounts. Unless you're careful, this is not going to go over very well with the folks in accounting.
So for B2C CRM systems, lLeads are really important as a way of storing prospect information without creating bogus accounts.