yo lo cambiaria pro algo asi :
<?
$to ="yo@micorreo.net";
$nombre = $_POST['nombre'];
$mensaje = $_POST['mensaje'];
$de = $_POST['email'];
$ciudad = $_POST['ciudad'];
$asunto = $_POST['asunto'];
$mensaje .= "mensaje enviado por $nombre";
$headers = "From: $nombre \nTo: $to\nReply-To: $email";
mail($to,$asunto,$mensaje,$headers);
echo "<b>$nombre</b>, tu mail se ha enviado. Gracias"
?>
o algo asi juega con el headers como ams te interes que lleguen los datos
ademas no estas usando la variable ciudad
Un Saludo