These days, a white tablecloth is an essential Shabbat accessory. However, it began as an Ashkenazi custom. The Talmud tells us that we should have our table set and our beds made (for sitting on — in those days beds were multi-purpose) before Shabbat begins. In the Middle Ages, wealthy homes began using ornate white tablecloths for festive meals. Later rabbis add that this includes covering your table (every table in the house, according to some) with a white tablecloth.
The 16th-century Lithuanian rabbi Solomon Luria famously placed two tablecloths on his Shabbat table. The second one was to keep the table covered when the first was being shaken out.
My understanding is that beautiful cloths of other colours are also fine adornments to the Shabbat table (though I wouldn’t be surprised if someone branded that view as heretical). The main thing is that it expresses love, care and taste so as to enhance the joy of Shabbat.