there are certain conditions where PK is required, but apart from that it is pretty much equivalent of unique not null. Obviously index is created, in order to keep things unique.
the (col1, col2 DESC) type of index is useful, when you have query that uses it that way. For example, if your query is to search index backwards, it will be quite slow on some hardware - and adding DESC in index desc, will make postgresql layout the bits on disc that way - which will obviously speed things up.