Sachverhalt: A. B._, geboren 1947, meldete sich am 24. Oktober 2000 unter Hinweis auf Rücken- und Knieschmerzen bei der Invalidenversicherung zum Leistungsbezug an. Am 18. Juli 2001 sprach ihr die IV-Stelle des Kantons St. Gallen ab 1. November 2000 eine halbe Invalidenrente zu. Dies bestätigte die IV-Stelle in einem ersten Revisionsverfahren am 22. Juli 2003. Mit Verfügung vom 20. Juli 2005 lehnte die IV-Stelle eine Erhöhung der Rente ab. Mit Einspracheentscheid vom 30. Januar 2006 zog die IV-Stelle die Verfügung vom 18. Juli 2001 wie angedroht zu Ungunsten von B._ in Wiedererwägung, stellte fest, dass der Invaliditätsgrad rentenausschliessende 38,64 % beträgt und hob die Ausrichtung der halben Rente per 1. März 2006 auf. B. Das Versicherungsgericht des Kantons St. Gallen hiess die hiegegen erhobene Beschwerde mit Entscheid vom 8. Dezember 2006 teilweise gut, hob den Einspracheentscheid vom 30. Januar 2006 auf und stellte fest, dass B._ weiterhin Anspruch auf eine halbe Invalidenrente hat. C. Die IV-Stelle führt Verwaltungsgerichtsbeschwerde mit dem Antrag, der angefochtene Entscheid sei aufzuheben und der Einspracheentscheid vom 30. Januar 2006 sei zu bestätigen. B._ lässt auf Abweisung der Verwaltungsgerichtsbeschwerde schliessen. Das Bundesamt für Sozialversicherungen verzichtet auf eine Stellungnahme. 