On this question, the Widrow (2002) review is still pretty up-to-date. You can also have a look on the introduction of Beck (2013), a recent PhD thesis on the subject with a straightfoward introduction to the subject.
The main questions remain the same for decades now:
- What is the origin of the magnetic seed fields?
- How to amplify magnetic field up to observed values in the local Universe?
- How to get large scale magnetic field, in particular if the magnetic seed fields are produced locally?
Origin of the magnetic seed fields
Where do we start? That is no easy question, with a diversity of answers. One of the most standard ones is the Biermann battery you mentioned (one significant problem with Biermann batteries is the timescale needed to amplify such small fields; see below) in the early Universe. Another one is that the magnetic field can be generated at small scales by first generations of AGN and supernovæ and then distributed at larger scales (dynamo can help but distribution at larger scale can still be an issue; see below). Lastly, you can have some exotic processes to generate seed fields in the first instants after the Big Bang, typically linked to inflation processes and such.
Magnetic field amplification
If there is an initial magnetic field — which is not so easy to demonstrate — there are few mechanisms that could amplify magnetic fields efficently enough to explain the observed magnetic field. The most standard one is the $\alpha-\omega$ dynamo, combining a twist of the magnetic field lines in a differentially rotating disk with turbulent motions in the ISM that allows a regeneration of the magnetic fields (supernovæ explosions, stellar winds and other instabilities could do the work). Another possible mechanism is the magneto-rotational instability (MRI), that can easily generate a significant, large-scale field from almost any given seed field. There are other candidates such as Parker instability, or other flavors of dynamos.
A central question then is of timescale: if these mechanisms can generate magnetic fields, the needed timescale to amplify a seed field to the current value may be far larger than the age of the Universe.
Magnetic field is everywhere, not only in the ISM and at larger scale in galaxies, but also in galaxy clusters, in the IGM and so on. If the origin of the magnetic seed fields is of cosmic origin (exotic processes in the early Universe), you can explain the observed distribution; if not, things get tricky again. Turbulence, galaxy collisions and mergers may be of help, but the question is still largely open.