Lo tienes bien encaminado.
En mi opinión deberías de crear una variable de control, que indicara si ha habido error
Código PHP:
//$error ->indica si se ha producido error, por defecto lo ponemos a true
// de esta manera la primera vez que entre dibujará el form.
$error = true;
//Comprobamos cada uno de los campos
// si todos los campos requeridos estan llenos
// $error = false
if ( $error )
{
//dibujamos el form
}
else
{
//Enviamos email
}