Sachverhalt: A. Das Obergericht des Kantons Zürich sprach X._ am 20. Februar 2003 in teilweiser Bestätigung des Urteils des Bezirksgerichts Horgen vom 17. April 2002 der mehrfachen Urkundenfälschung (Art. 251 Ziff. 1 StGB) und des Steuerbetrugs (Art. 186 Abs. 1 DBG und § 192 aStG/ZH) schuldig und verurteilte ihn zu einer bedingt vollziehbaren Gefängnisstrafe von fünf Monaten und zu einer Busse von 600 Franken. B. Das Kassationsgericht des Kantons Zürich wies am 28. September 2004 die von X._ erhobene kantonale Nichtigkeitsbeschwerde ab, soweit es darauf eintrat. C. X._ führt eidgenössische Nichtigkeitsbeschwerde mit dem Antrag, das Urteil des Obergerichts sei aufzuheben, und er sei von Schuld und Strafe freizusprechen. Zudem ersucht er um Gewährung der unentgeltlichen Rechtspflege. D. Das Obergericht hat auf eine Stellungnahme zur Beschwerde verzichtet. 