Contact vs Lead

What the frikity-frik is the difference between a Contact and a Lead in Salesforce? Even when you've been told it before, you can often find yourself hesitating and having to do a sneaky Google search when no-one is watching - what's the difference again? When do I need to use this one? When should I use that one? Do I skip the lead and go straight to a contact? Can someone PLEASE just tell me the truth!
Don't worry - we're here for you.
Salesforce Contact vs Lead  

MAJOR DIFFERENCE #1 - Leads come first

Salesforce Leads
Alright, the easiest way to start is by remembering that Leads come first.  They're like a business card or introduction. If your company is doing well, you should be getting heaps of these babies coming through the door. Imagine this giant pile of letters on your desk building up. Who do you chase up? How do you know who's serious? Leads are a place to store all the could-be-serious-but-might-just-be-time-wasters (aka 'prospects') that you get introduced to at conferences, events, shops, expos, and so on. If they do well, and you chase them up, a Lead might just become a contact.

MAJOR DIFFERENCE #2 - Leads go through stages

 Leads Salesforce 
Just like your younger, moodier, grumpier (hopefully) teenager-self, Leads go through phases. When a Lead has enough solid potential and is gaining some serious momentum to becoming a glorious customer, it can move into a new phase of life by becoming qualified. If a Lead is qualified, it turns into an Account AND a Contact. The Lead is no more, and the Account + Contact duo is born. An Account is a business and a Contact is the person you deal with from that business.  Contacts don't typically go through stages. They're pretty set as a customer you have sold to or a vendor you do business with. Whatever the case, they are no longer strangers anymore - they have joined the elite and favoured Contacts and left the suffocating stack of Leads behind.

MAJOR DIFFERENCE #3 - Leads contain person data AND business data

Salesforce Leads and Contacts  
Like a business card, Leads have some basic info about the person and the business. This is different from Accounts and Contacts which store person data and business data separately. This is handy to have so that you're not cluttering up Accounts and Contacts with data that you're not really sure is useful for your company. 
If Leads are like a great big stack of business cards, it can be super helpful to know which Leads you've looked at and which ones you're yet to follow up. Fortunately, Salesforce has an "Unread" feature which allows you to do just that. By selecting "My Unread Leads" you can see all Leads that you haven't yet got to. Just like your email, as soon as you've viewed them, they are automatically marked as "Read".
There you go! That should clear up some of the Leads vs Contacts confusion. Now, about those Opportunities....