Cuando recoges datos de un <textarea> .. los salto de línea que ahí das .. son \n (o \r\n o \r según el S.O. siendo lo típico \n ..) Así los guardas en tu campo de tu BD (sea del tipo q sea mientras que sea de texto ..).
A la hora de "imprimir" ese dato de tu BD que tiene los \n de tu "<textarea>" original .. HTML no interpreta el salto de línea como \n sino con su <tag> .. <br> ..
Ahí es donde entra a funcionar la función nl2br() como bien comenta temaqueja convirtiendo los \n en <br /> (exactamente es como lo escribí ... con el / para ser compatible con sintax XTML ..)
Más info:
http://www.php.net/manual/en/function.nl2br.php
Un saludo,