Estos dos tipos se crean al compilar en modo debug o release desde visual studio. Alguna vez me comentaron sobre el tema. Cuando estemos programando y probando debemos de compilar en debug, ya que se crea un archivo adicional .pdb que es como una base de datos de los errores o algo así. Y cuando ya tengamos nuestro programa listo le mandamos una ultima compilación en modo release y utilzar el .exe que se crea en este modo.
Así me dijo una vez un profe de la u, aunque para mi parecer ambos .exe se ven igualitos