Tanto MFC como Windows Forms son wrappers de la API de Windows (Win32). MFC es antigua y se podria decir que Windows Forms la reemplaza, esta NECESITA del framework .NET, cosa que MFC no.
¿Cual usar? Dependera del proyecto

Dale una ojeada a la Wikipedia para los tres.