If it's for electronic documents purely, then I think we're pretty close, at least in terms of what the technology supports. Making it easy to do various kinds of typesetting tasks are perhaps another story; there is a lot of stuff that is technically possible with the tech modern browsers support but not easy to do, certainly not with a workflow as automated as LaTeX's.
maths used to be a weak point, but take this page from my blog - http://www.acooke.org/cute/Calibratin0.html - and scroll down to the maths. then look at the source. the source is basically tex. it's rendered in the browser using mathjax - http://www.mathjax.org/
that's all possible now.
I am aware of mathjax, which is useful for embedding snippets, but this is still far from what I am talking about, which is a complete publishing system such as latex, as is used by publishers for all kinds of documents, but for electronic active documents with features that go beyond those of books and PDF.
it's a different toolchain, with different end-users in mind. but you have an underlying engine that arranges text with arbitrary modifications to font styles in arbitrary regions.
the kind of differences i see are at the level of whether those regions are rectangular or not (which css3 is addressing, i think). that is not critical for most use.
I have been seeing a lot more HTML5 demos with unusual placement of fonts and text. So it seems a no-brainer to port TeX to the browser (for many years this was considered impossible for some reason)
If you read Don Knuth's book on TeX you can probably figure out how to make it run.