If you don't need an in-place sort, and you're using .NET 3.5, I'd use OrderBy as suggested by marxidad. If you need the existing list to be sorted, use List.Sort.
List.Sort can take either a Comparison delegate or an IComparer - either will work, it's just a case of working out which will be simpler.
In my MiscUtil project I have a ProjectionComparer which allows you to specify the sort key (just as you do for OrderBy) rather than having to take two parameters and call CompareTo yourself. I personally find that easier to read, but it's up to you, of course. (There are also simple ways of reversing and combining comparisons in MiscUtil. See the unit tests for examples.)