yo ya lo he probado todo y el excel se sigue quedando... pego el codigo a ver si se me escapa alguna tonteria...
 
    Dim oExcel As New Excel.Application
        Dim oBooks As Excel.Workbooks, oBook As Excel.Workbook
        Dim oSheet As Excel.Worksheet
        Dim oSheets As Excel.Sheets  
        oExcel.Visible = False
        oExcel.UserControl = False
        oBooks = oExcel.Workbooks
        oBooks.Open("prueba.xls")   
        oBook = oBooks.Item(1)
        oSheets = oBook.Worksheets
        oSheet = CType(oSheets.Item(1), Excel.Worksheet)   
        Label1.Text = oSheet.Cells(1, 1).Value
        oBook.Close()
        oExcel.Quit() 
        System.Runtime.InteropServices.Marshal.ReleaseComO  bject(oBook)
        System.Runtime.InteropServices.Marshal.ReleaseComO  bject(oBooks)
        System.Runtime.InteropServices.Marshal.ReleaseComO  bject(oSheets)
        System.Runtime.InteropServices.Marshal.ReleaseComO  bject(oSheet)
        System.Runtime.InteropServices.Marshal.ReleaseComO  bject(oExcel)
        oBook = Nothing
        oBooks = Nothing
        oSheets = Nothing
        oSheet = Nothing
        oExcel = Nothing
        System.GC.Collect()  
Tengo tambien el collect en el form_unload, lo que no se que es eso del dispose que hablais...
Hago todo lo que dice en 
http://support.microsoft.com/default...b;EN-US;317109
y no consigo que se muera el proceso... :(