What is the difference between Custom Setting Type "List" and "Hierachy"?
What's your use case? One will fit better than the other.
Hierarchy custom settings can be configured at varying user specificity levels under a single name; the platform will look for the most specific configuration first, then fall back / inherit to the least specific:
Hierarchy custom settings are easily retrieved in Visualforce:
List custom settings have user-independent values, retrieved under multiple names. For example, you could use several configs to hold the credentials for a web service callout so that you can swap the endpoints:
List custom settings need to be accessed using a controller if you want to avail them on a page, for example