Part of the problem is that markup languages are inherently 1-dimensional (and the ones that aren't suck to actually write in), whereas tablular data is often 2+-dimensional. This problem is compounded if you want to represent anything that isn't strictly a plain m by n table (e.g., something with additional formatting or cells with non-1 column or row spans).
Frankly, I think the best way to make tables is to have a GUI that generates some machine-readable markup for the table (or even just an image of it). I'd like for there to be something like Grid that does this.