you should look into node type administration for the full list of differences.
- you are free to add whatever property you want in a sling:folder (not in a nt:folder)
- you are free to add whatever nodetype you want in a sling:folder (not in a nt:folder)
As Nicolas said, there are some things that you can do only in a sling:folder type of node.
The "nt" means "Node Type", and a "node type: folder" is just a empty node that can be referenced as a organizational structure file folder. The "sling" prefix means that this one special folder belong to the type "Sling", in other words, that folder type node is built in the sling Framework structure and is constructed with some setting already, which I do not know to tell you. Take a look at "/libs/sling/nodetypes/sling.cnd" on you CRXDE Lite or CRXDE.
(I may be wrong about some details, eveything here is what I believe myself after some research and experience)
nt:folder represents a plain file system folder (it can have nt:folder and nt:file children and only a few restricted meta data properties).
sling:folder is basically nt:folder + nt:unstructured in one, i.e. it can be used inside other nt:folders, but it comes with residual (arbitrary, wildcard) properties and child nodes.