Ok, very simply.
For each scanline, there is a list of instructions on how to draw that line. This is called the Display List. Each item in the list specifies how many pixels per byte (1 or 2), how many iterations of those pixels should be pulled from memory, and where on the scanline to start drawing. It also specifies which palette to use (3 colors for each of the 8 palettes). When executed, the Maria will execute these instructions to fill in the scanline.
Given that there's more than one scanline, a Display List List is used to hold pointers to each Display List. Each DLL entry can specify how many scanlines a given display list should be used on. The Display List instructions will automatically use the line counter (called "offset") to pull the next line of data in each sprite. Thus a 16 line DLL entry would draw a 16 pixel high sprite.
Finally, an absolute address to the DLL is placed in two registers, and DMA is enabled. The 7800 will then execute those display instructions every frame, whether your program does anything useful or not.
If anyone has any additions, corrections, or comments, feel free to speak up.