You could also simply render an asteroid as a collection of pieces of an asteroid clumped together and simply separate one or more from the pack when appropriate.
Most games with destructible environments do a similar thing. They have predetermined shapes that larger objects are reduced to when destroyed, although usually they are made up of only one mesh beforehand. If you want to get into dynamic mesh fracturing, that gets a little more complicated. You'd need some method for dynamically separating the mesh, and joining vertices of the resulting meshes together to form multiple complete shapes.