si usano soprattutto nei loop ed a seconda di cosa devi fare può tornare utile l'uno o l'altro.

ti faccio un esempio molto stupido
codice:
// fai finta che $mioarray ha sempre e comunque almeno un valore ...


$i = count($mioarray);

do {
	echo $mioarray[--$i];
} while($i);

// $i non sarà mai inferiore a zero
// quindi puoi sfruttarla come unsigne integer
// o per altre operazioni dove devi partire da zero

while($i < $qualchelength)
	// fai qualcosa $i++



// altro esempio ....
$i = count($mioarray);
while($i--)
	echo $mioarray[$i];

// anche se sei sicuro che l'array avrà un solo valore
// farai due operazioni di decremento al posto di una sola

// ergo quando $i sarà zero
// while($i--) non effettuerà il contenuto
// del while ma la $i poi sarà -1