I personally use LaTeX, a typesetting language. Although it seems intimidating at first it is very powerful. It is not a word processor, however, it is a markup language, similar to HTML. There are some huge advantages to this factor alone. Every file is a simple ASCII file which can be edited with any text editor (I like BBedit.) This means there is almost no chance of corruption, because the format is open, heck, you write in it.
The main advantages to it though is that you rarely need to figure out formatting details such as margins. Typesetters who know a whole lot more than I do about what is best have already designed the system. When I add a list, it just plain looks good. When I use the title command, it just plain looks good.
There is a fairly steep learning curve to do much other than type standard papers, etc. But once you climb it, it is easy to learn new commands. Another advantage is that once you find out how to do some complex formatting, all the commands can be copied and pasted and changed a little bit, instead of having to search through dialogs to find the function.
The largest difficulty in learning LaTeX is overcoming the conceptual gap. Most people have been trained to type and expect that to be the final result. In LaTeX, it is very different, you type commands and it produces a result, but the stuff you type in looks nothing like the result. Programmers, including web designers are used to this sort of process and will probably find LaTeX easier to learn. However most people can train themselves to distinguish between the two and become very efficient in LaTeX.
You can obtain the standard teTex installation from
http://www.rna.nl/tex.html, which can then be used with the free iTexMac or TexShop programs which the site also mentions.