Что бы прямо по MSIL отлаживать — такого не знаю. Вроде есть какой-то плагин для рефлектора, но не пробовал никогда.
Если dll — это .net сборка, то мы делали так
1) Снимаем флажки Enable Just My Code (В 2008 студии это тут: Tools->Options->Debugging->General).
2) Ставим брекпоинт (Debug->New Breakpoint-> Break At Function) по полному имени функции(например: System.Windows.Forms.Control.SuspendLayout)
Потом уже по ассемблерному коду отлаживаемся, поглядывая одним глазом в рефлектор (или что-то подобное, что может код на C# показать).Там достаточно понятно все — смотришь сначала на код в рефлекторе, потом на ассемблерный, обычно понятно что чему соответствует. Если действительно надо, разобраться можно.
Зачастую отладчик даже может показать значения аргументов по их именам.