The most common type-setting program used these days for technical work is the TEX program and its accomplices. It is a rather simple yet powerful language that allows one to embed some commands within ones text to produce the desidered typographical effect like changing fonts, spacing, mathematical formulae etc. Many journals accept papers submitted via electronic mail in the usual TEX formats. The CTAN project provides a comprehensive support for TEX in the Unix-like environment. This includes latest versions of all programs, fonts, formats and also drivers for various printers and screen previewers (which allow one to check the final form before taking a printout). On the PC front we have the comprehensive TEX package created by Eberhard Mattes of Stuttgart University called emTEX. This gives the same features in the PC environment.
There is also along with TEX a program called METAFONT which allows the user to create new fonts and symbols. This had led to formats and styles for TEX to be used to type-set various Indian languages like Hindi, Marathi and Tamil.
Style files for the inclusion of figures and tables created with other software and in a variety of standard formats can also be found along with all the TEX programs. Some further utilities allow two-page and two-sided printing. Hence it can be said that for technical (and pperhaps even for non-technical) type-setting TEX is the best there is.