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.
Erwägungen:
1. 1.1 Die Beschwerde richtet sich gegen einen verfahrensabschliessenden Entscheid einer kantonalen Letztinstanz (Art. 75 Abs. 1 i.V.m. Art. 90 BGG) in einer Zivilsache (Art. 72 Abs. 1 BGG); die Rechtsbegehren der Beschwerdeführer sind im kantonalen Verfahren nicht vollständig geschützt worden (Art. 76 Abs. 1 BGG); der massgebende Streitwert beträgt mehr als Fr. 30'000.-- (Art. 51 i.V.m. Art. 74 Abs. 1 lit. b BGG); die Beschwerdefrist ist eingehalten (Art. 100 Abs. 1 BGG). Auf die Beschwerde ist damit grundsätzlich einzutreten.
1.2 Nach Art. 42 Abs. 2 BGG ist in der Beschwerdeschrift in gedrängter Form darzulegen, inwiefern der angefochtene Akt Recht verletzt. Soweit das Bundesgericht das Recht von Amtes wegen anwendet (Art. 106 BGG), ist zwar eine ausdrückliche Nennung bestimmter Gesetzesartikel nicht erforderlich, falls aus den Vorbringen hervorgeht, gegen welche Regeln des Bundesrechts die Vorinstanz verstossen haben soll. Unerlässlich ist aber, dass auf die Begründung des angefochtenen Urteils eingegangen und im Einzelnen dargetan wird, worin eine Verletzung von Bundesrecht liegen soll (BGE 134 V 53 E. 3.3 S. 60; 133 IV 286 E. 1.4; 116 II 745 E. 3 S. 748 f.).
2. Die Beschwerdeführerin wirft der Vorinstanz vor, sie habe Art. 8 ZGB verletzt und den Sachverhalt unrichtig festgestellt. Entgegen der Feststellung der Vorinstanz habe die Beschwerdeführerin gegenüber der Beschwerdegegnerin zu keinem Zeitpunkt offenbart, sie würde nicht beabsichtigen, die Konventionalstrafe einzufordern. Diese Feststellung sei akten- und tatsachenwidrig.
2.1 Die allgemeine bundesrechtliche Beweisvorschrift von Art. 8 ZGB regelt die Folgen der Beweislosigkeit. Ist eine rechtserhebliche Tatsache weder bewiesen noch widerlegt, so ist Art. 8 ZGB verletzt, wenn die Beweislast falsch verteilt wird (vgl. BGE 134 III 224 E. 7.2 S. 234; 133 III 507 E. 5.2 S. 510; 128 III 271 E. 2a/aa S. 273). Die Norm ist aber auch verletzt, wenn die Voraussetzung der Beweislosigkeit zu Unrecht bejaht oder verneint wird, weil der Beurteilung ein falsches Beweismass zugrundegelegt (vgl. zum Beweismass BGE 132 III 715 E. 3.1 S. 719 f.; 130 III 321) oder weil Beweislosigkeit angenommen wird, obwohl die beweisbelastete Partei taugliche Beweismittel prozessual gehörig angeboten hatte, diese aber nicht abgenommen worden sind (BGE 122 III 219 E. 3c S. 223 f.; vgl. für den Gegenbeweis auch BGE 129 III 18 E. 2.6 S. 24 f.; 115 II 305). Wird dagegen in Beachtung des bundesrechtlich vorgegebenen Beweismasses in Würdigung der vorhandenen Beweise eine rechtserhebliche Tatsache als bewiesen oder als widerlegt erachtet, so ist die bundesrechtliche Beweisvorschrift von Art. 8 ZGB nicht verletzt, denn sie regelt die Beweiswürdigung nicht und schliesst auch die antizipierte Würdigung von Beweisen nicht aus (BGE 134 I 140 E. 5.3 S. 148; 122 III 219 E. 3 c S. 223 f.).
2.2 Die Vorinstanz stellte fest, die Beschwerdeführerin habe gegenüber der Beschwerdegegnerin mehrmals ihre Absicht offenbart, die Konventionalstrafe nicht einzufordern. Sie nahm somit bezüglich dieser Tatsache nicht Beweislosigkeit an, sondern erachtete diese in Würdigung der eingereichten Urkunden sowie der Zeugen- und Parteibefragung als bewiesen. Die Rüge der Verletzung von Art. 8 ZGB geht somit fehl.
2.3 Das Bundesgericht legt seinem Urteil den Sachverhalt zugrunde, den die Vorinstanz festgestellt hat (Art. 105 Abs. 1 BGG). Die Feststellung des Sachverhaltes kann nur gerügt werden, wenn sie offensichtlich unrichtig ist oder auf einer Rechtsverletzung im Sinne von Art. 95 BGG beruht und wenn die Behebung des Mangels für den Ausgang des Verfahrens entscheidend sein kann (Art. 97 Abs. 1 BGG). "Offensichtlich unrichtig" bedeutet dabei "willkürlich" (BGE 135 III 127 E. 1.5 S. 130). Der Beschwerdeführer, der die Sachverhaltsfeststellungen der Vorinstanz anfechten will, kann sich nicht damit begnügen, den bestrittenen Feststellungen eigene tatsächliche Behauptungen gegenüberzustellen oder darzulegen, wie die Beweise seiner Ansicht nach zu würdigen gewesen wären. Vielmehr hat er klar und substanziiert aufzuzeigen, inwiefern die gerügten Feststellungen bzw. die Unterlassung von Feststellungen offensichtlich unrichtig sind oder auf einer Rechtsverletzung im Sinne von Art. 95 BGG beruhen. Auf eine Kritik an den tatsächlichen Feststellungen der Vorinstanz, die diesen Anforderungen nicht genügt, ist nicht einzutreten (BGE 133 II 249 E. 1.4.3; 133 III 350 E. 1.3, 393 E. 7.1, 462 E. 2.4).
2.4 Diese Grundsätze verkennt die Beschwerdeführerin. Sie wirft der Vorinstanz vor, sie habe die Feststellung, dass die Beschwerdeführerin mehrmals ihre Absicht offenbart habe, die Konventionalstrafe nicht einzufordern, auf keinerlei erhärtete oder erwiesene Tatsachen gestützt. Dabei begnügt sich die Beschwerdeführerin jedoch mit einer eigenen Würdigung der Beweismittel und stellt den Feststellungen der Vorinstanz lediglich eigene tatsächliche Behauptungen entgegen. Mit der Argumentation der Vorinstanz in dieser Frage setzt sie sich in keiner den Begründungsanforderungen genügenden Weise auseinander. Auf die Rüge der unrichtigen Sachverhaltsfeststellung ist somit nicht einzutreten.
2.5 Zur rechtlichen Würdigung hält die Beschwerdeführerin nur in allgemeiner Weise fest, die Geltendmachung der Konventionalstrafe sei lediglich durch die zehnjährige Verjährungsfrist begrenzt. Die Auffassung der Vorinstanz, dass die Geltendmachung der Konventionalstrafe gegen Treu und Glauben verstossen würde, stellt die Beschwerdeführerin mit keinem Wort in Frage; eine Rüge der Verletzung von Art. 2 ZGB bringt sie jedenfalls nicht vor. Damit erübrigt sich auch die Prüfung der Frage, ob die Anspruchsvoraussetzungen der Konventionalstrafe überhaupt erfüllt wären.
3. Aus diesen Gründen ist die Beschwerde abzuweisen, soweit darauf einzutreten ist. Bei diesem Ausgang des Verfahrens wird die Beschwerdeführerin kosten- und entschädigungspflichtig (Art. 66 Abs. 1 und Art. 68 Abs. 2 BGG).
Demnach erkennt das Bundesgericht:
1. Die Beschwerde wird abgewiesen, soweit darauf einzutreten ist.
2. Die Gerichtskosten von Fr. 2'000.-- werden der Beschwerdeführerin auferlegt.
3. Die Beschwerdeführerin hat die Beschwerdegegnerin für das bundesgerichtliche Verfahren mit Fr. 2'500.-- zu entschädigen.
4. Dieses Urteil wird den Parteien und dem Obergericht des Kantons Solothurn, Zivilkammer, schriftlich mitgeteilt.
Lausanne, 26. März 2009
Im Namen der I. zivilrechtlichen Abteilung
des Schweizerischen Bundesgerichts
Die Präsidentin: Der Gerichtsschreiber:
Klett Hurni