Last Milestone index is the highest index of a milestone transaction you have seen (because it was pushed to you by another node).
Last Solid Subtangle Milestone index is the highest index of a milestone transaction where you have received all referenced transactions as well (so when you start walking from them towards the beginning of the tangle, there are no transactions missing).
When they differ, you received a milestone but not all referenced transactions yet (which means that your node cannot reliably tell whether a transaction has been confirmed by that milestone). Either the incoming bandwidth of your node (or the outgoing bandwidth of your neighbors) is insufficient to receive all the other transactions (milestones are sent prioritized) or the background thread that tries to retrieve missing transactions has somehow died (due to a possible bug in iri).
Try restarting the node, if it catches up quickly, then there is probably a bug somewhere :)