Depending on how complicated the calculation is, you can *may* be able to do the calculation in the DAL. If it's just a simple sum, you can use SUM(), then then orderby descending the SUM() amount and limitby=(0,10).
Otherwise, you could always create a sorted List and as you iterate through each row, keep track of the top 10 largest rows. Of course, the first approach may be much easier :)