After each span is drawn, it's height is stored in an array, so that bars that are drawn behind this bar can be clipped against it. That way, overdraw is completely prevented. The screen space above the horizon can then be filled with a nice backdrop, wich makes the picture complete. That's the basic algorithm. But there are bad things about voxels too.
Small details tend to flicker when the camera moves.
This gets worse when you try to reduce the blockyness. Voxel maps are huge. That's why 'Comanche Total Overkill' was the first 386 game that required an awesome 4Mb of memory. You can only have a single height per voxel. It is possible however to overcome these problems.