¿Como quieres que sepamos que valores hay en tus varibles?
El dateformat hace siempre lo que debe, así que tu problema es como lo estás haciendo o el valor que envías.
Poniendo la fecha que has puesto en el ejemplo se puede modificar a d-m-Y con date_format() sin problemas.
Código PHP:
$fecha = date_create('2009-05-17 19:00:00'); //Creo una fecha con tus valores
echo date_format($fecha, 'd-m-Y H:i:s'); // Cambia el formato
echo date_format($fecha, 'd-m-Y'); // Cambia el formato sin la hora