In the first example, only the index column: PostalCode is stored in the index tree with all the other columns stored in leaf level of the index. This makes the index smaller in size and is useful if you wouldn't be using a where, Join, group by against the other columns but only against the PostalCode.
In the second index, all the data for all the columns are stored in the index tree, this makes the index much bigger but is useful if you would be using any of the columns in a WHERE/JOIN/GROUP BY/ORDER By statements.
Include columns makes it faster to retrieve the data when they are specified in the select list.
For example if you are running:
SELECT PostalCode, AddressLine1, AddressLine2, City, StateProvinceID
FROM Person.Address
Where PostalCode= 'A1234'
This will benefit from creating an index on PostalCode and including all the other columns
On the other hand, if you are running:
SELECT PostalCode, AddressLine1, AddressLine2, City, StateProvinceID
FROM Person.Address
Where PostalCode= 'A1234' or City = 'London' or StateProvinceID = 1 or AddressLine1 = 'street A' or AddressLine2 = 'StreetB'
This would benefit more from having all the columns in the index
Have a look at the links below, these might help more with your query
Index with Included Column: https://msdn.microsoft.com/en-us/library/ms190806(v=sql.105).aspx
Table and Index Organization: https://msdn.microsoft.com/en-us/library/ms189051(v=sql.105).aspx