1 2 3 4 5 6 7 8 9 10 11 12 13

The following should do the trick:

table {
+ margin: auto;
  text-align: center;
}

This tells the browser to automatically set the margins on either side of the table to be equivalent to one another within the parent element, effectively centering the table. So far, so good.

h2 {
  text-align: center;
}
table {
  margin: auto;
  text-align: center;
}

April 2007

Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

May 2007

Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31