Pues es algo complejo de explicar (salvo que alguien tenga otra mejor técnica) sobre todo si piensas agrupar por más de un campo.
Básicamente sería meter los datos que obtienes de la base de datos en un arreglo, donde se agruparían por las claves que requieras, en tu caso la clave a agrupar sería fecha.
Luego recorrer el arreglo y verificar si una clave tiene una o más filas dentro, entonces indicar como rowspan el número de filas contenidas.
Siguiendo tu ejemplo, se requiere agrupar primero por fecha para saber cuántas facturas habrá en la misma fecha.
Suponiendo que tienes en una tabla los campos fecha, folio,importe:
Código PHP:
Ver original $arreglo[$fila['fecha']][]=array('folio'=>$fila['folio'],'importe'=>$fila['importe']);//metes los datos dentro de $arreglo agrupando por fecha
.....///abres la tabla en html con sus encabezados
foreach($arreglo as $fecha =>$filas){
$x=0;
foreach($filas as $fila){
echo'<tr>';
echo '<td>'.$fila['folio'].'</td><td>'.$fila['importe'].'</td>';
if(!$x)//si estamos en la primer fila del grupo
echo '<td rowspan="'.$cuantos.'">'.$fecha.'</td>';//mostramos la columna fecha
$x++;
echo '</tr>';
}
}