Ascending order is more efficient. This is true with all RDBMS I have worked with and it's true for a number of reasons. The biggest issue with descending sorts (ordered-backward scans) in SQL Server is that ordered-backward scans cannot leverage a parallel execution plan.
Keep in mind that sorting has a n(log n) complexity which is slower than linear. In other words, each row gets more expensive to sort as you add more rows. This is why the optimizer often chooses a parallel execution plan to handle sorts. If you have a lot of rows to sort you want your optimizer to have the option to parallelize the sort. So, again - ascending is more efficient.
There are other optimizations not available to the optimizer when you do an ordered-backward scan. For example, when using partitioned window functions (function that use the OVER clause and PARTITION BY) ascending is usually more efficient.
Here are two really good articles about this topic (both by Itzik Ben-Gan):
SQL Server: Avoiding a Sort with Descending Order
Descending Indexes