This gives me the best results but I still wouldn't say it's 100%
Code:
            xlApp.Quit()
            GC.Collect()
            GC.WaitForPendingFinalizers()

            Marshal.FinalReleaseComObject(xlWorkSheet)
            Marshal.FinalReleaseComObject(xlWorkBook)
            Marshal.FinalReleaseComObject(xlApp)
            xlApp = Nothing