Sachverhalt: A. A.a Die X._ AG (Beschwerdeführerin) und die Y._ AG (Beschwerdegegnerin) unterzeichneten am 21. Oktober 2005 einen Vorvertrag zu einem Grundstückkaufvertrag. Die Beschwerdeführerin verpflichtete sich, das Grundstück A._ zum Preis von total Fr. 215'000.-- der Beschwerdegegnerin zu verkaufen. Der Kaufpreis sollte durch eine Anzahlung von Fr. 20'000.-- bei Abschluss des Vorvertrages und eine Zahlung von Fr. 195'000.-- bei Abschluss des Hauptvertrages beglichen werden. Die Anzahlung wurde geleistet. Weiter verpflichtete sich die Beschwerdeführerin, der Beschwerdegegnerin die bestehenden Schuldbriefe von insgesamt Fr. 780'000.-- gegen Bezahlung des Kaufpreises unbelehnt auszuhändigen. In Ziff. 12 des Vorvertrages wurde zudem Folgendes vereinbart: "Die Parteien verpflichten sich, den Hauptvertrag innert 14 Tagen auf die Einladung der Amtschreiberei hin zu unterzeichnen. Verweigert eine Partei die Unterschrift, wird sie verpflichtet, der anderen Partei eine Konventionalstrafe von CHF 20'000.-- zu bezahlen. Die Bezahlung der Konventionalstrafe entbindet nicht von der Vertragseinhaltung. Die vertragstreue Partei hat das Wahlrecht, den Vorvertrag unter Forderung der Konventionalstrafe aufzulösen oder aber zusätzlich zur Vertragserfüllung die Konventionalstrafe zu verlangen." A.b Am 24. November 2005 lud die Amtschreiberei Region Solothurn die Parteien zur Unterzeichnung des Hauptvertrages auf den 1. Dezember 2005 ein. Wegen Ferienabwesenheit des Verwaltungsrates der Beschwerdegegnerin, B._, wurde dieser Termin im Einvernehmen mit der Beschwerdeführerin auf den 12. Dezember 2005 verschoben. Am 9. Dezember 2005 teilte die Beschwerdegegnerin der Amtschreiberei telefonisch mit, der Termin vom 12. Dezember 2005 müsse ebenfalls abgesagt werden, da sie noch keine Finanzierungslösung gefunden habe. Das Geschäft solle aber vorläufig noch pendent gehalten werden. A.c Am 7. Juli 2006 setzte die Beschwerdeführerin der Beschwerdegegnerin eine letzte Frist bis am 17. Juli 2006 zur Bezahlung des Restbetrages von Fr. 195'000.--. Sollte die Zahlung bis zu diesem Datum nicht erfolgt sein, mache die Beschwerdeführerin die Konventionalstrafe von Fr. 20'000.-- geltend. Der Vorvertrag werde diesfalls wegen Nichteinhaltens der Bedingungen durch die Beschwerdegegnerin hinfällig. Am 14. Juli 2006 teilte die Beschwerdegegnerin der Beschwerdeführerin mit, B._ sei bis anfangs August landesabwesend, er wolle aber den Vorvertrag nach wie vor erfüllen. Er werde sich nach seiner Rückkehr melden. A.d Mit Schreiben vom 8. bzw. 15. November 2006 wandte sich die Beschwerdegegnerin an die Beschwerdeführerin und beklagte sich darüber, dass sie seit dem Schreiben vom 7. Juli 2006 nichts mehr von ihr gehört habe. In der Zwischenzeit habe sie erfahren, dass Pläne bestünden, das Grundstück A._ anderweitig zu verkaufen. Unter diesen Umständen verlange sie die Rückerstattung der Anzahlung von Fr. 20'000.-- bis am 20. November 2006. An diesem Tag antwortete die Beschwerdeführerin, dass sie der Beschwerdegegnerin demnächst eine Stellungnahme zukommen lassen werde. Tagsdarauf setzte die Beschwerdegegnerin der Beschwerdeführerin eine Frist bis 30. November 2006 zur abschliessenden Stellungnahme und behielt sich "je nach Ausgang Ihrer Antwort" die Geltendmachung der Konventionalstrafe vor. Mit Schreiben vom 4. Dezember 2006 teilte die Beschwerdeführerin der Beschwerdegegnerin mit, ihrer Auffassung nach sei der in Ziff. 12 des Vorvertrages geregelte Sachverhalt erfüllt. Sie sei daher berechtigt, die Konventionalstrafe von Fr. 20'000.-- einzufordern. Diese verrechne sie mit der in gleicher Höhe geleisteten Anzahlung. B. B.a Am 30. April 2007 reichte die Beschwerdegegnerin beim Richteramt Solothurn-Lebern Klage ein mit den Anträgen, die Beschwerdeführerin sei zur Rückerstattung der Anzahlung von Fr. 20'000.-- sowie zur Zahlung einer Konventionalstrafe von Fr. 20'000.-- zu verurteilen. Mit Urteil vom 13. März 2008 wies das Amtsgericht die Klage ab. B.b Dagegen appellierte die Beschwerdegegnerin an das Obergericht des Kantons Solothurn und beantragte die Aufhebung des erstinstanzlichen Urteils und die Gutheissung der Klage. Mit Urteil vom 3. November 2008 hiess das Obergericht des Kantons Solothurn die Appellation teilweise gut und verurteilte die Beschwerdeführerin zur Rückerstattung der Anzahlung von Fr. 20'000.--. Im Übrigen wies es die Klage ab. Das Obergericht kam zum Schluss, dass die Beschwerdeführerin die Konventionalstrafe nicht fordern könne. Die Beschwerdeführerin habe mehrmals ihre Absicht offenbart, die Konventionalstrafe nicht einzufordern. Dies nun doch zu tun, widerspreche Treu und Glauben. Eine Verrechnung mit der Anzahlung, die unbestrittenermassen zurückerstattet werden müsse, komme deshalb nicht in Betracht. C. Mit Beschwerde in Zivilsachen vom 12. Dezember 2008 beantragt die Beschwerdeführerin dem Bundesgericht, es sei das Urteil des Obergerichts des Kantons Solothurn aufzuheben (Ziff. 1, 3 und 4) und die Klage abzuweisen. D. Die Beschwerdegegnerin schliesst in ihrer Vernehmlassung auf Abweisung der Beschwerde. Das Obergericht verzichtet auf eine Vernehmlassung. Mit Präsidialverfügung vom 21. Januar 2009 wurde das Gesuch um aufschiebende Wirkung abgewiesen.