Recently I have been (re-)learning InDesign again. I have an old CS3 version, but now tried the new CS6. The program is impressive in any respect. The structure and logic are beyond that of most other programs. Perhaps only a number of 3D applications are able to match it. A lot of digging in the menus is required to make full use of it, but once that is done the program allows to produce the most complex documents for any purpose imaginable: print, web, animations etc. there is very little the is not capable of.
One of the big drawbacks of InDesign is that it can't retrieve data from an SQL database without using Excel as an intermediate translator of formats. Excel has to import data from SQL and then export it as CSV (comma separated text file). This is where things often go terribly wrong when data in SQL is stored in a certain way. Excel interprets a number of characters in a very peculiar way, making a mess out of the CSV. That in turn messes up the import in InDesign. It can be corrected manually, but that can be quite a chore, when high volumes of data must be retrieved. In addition there can be no automatic update from SQL, because the Excel conversion remains necessary.
Years ago I used it to produce technical educative books that consisted of great lengths of text, many images and tables, formula, footnotes, indexes and extreme lay-out gadgets that all had to be composed into seemingly restraint appearance that was easy on the eyes. The new CS6 version has improved significantly compared to the already feature rich CS3. One of the companies I used to work for in the past required me to work with FrameMaker - a document make up program that worked together flawlessly with systems aimed at controlling information in a structured way. It did not have the fancy features of InDesign, which makes the latter even more impressive since it has the capacity to achieve similar structure while also allowing to create appealing lay-outs.
While searching for alternatives to InDesign I ran into Scribus and LyX. Although both are very good programs for which they were designed, neither of them comes even close to what InDesign is capable of. Scribus was written to create folders and posters for which it is excellently suited. It gives designers a lot of features and freedom to swiftly create the aforementioned documents, but it lacks the structure to compose lengthy and complex documents. What is painfully missing is the option to anchor images and tables within text, which means that re-editing large parts of extensive documents could cost a lot of time and effort.
LyX is based on LateX and is predominantly used in academic circles. It operates as structured as InDesign, but it lacks its lay-out features. Apart from that it requires users to load and install all sorts of separate modules that are hard to find, since there are so many of them. Once you have succeeded in finding the proper modules it allows to work very fast in a very structured way. However the documents it allows to produce are visually less appealing than what is possible with InDesign. An advantage that LyX has over InDesign is the function that creates very complex formula within the program itself. Users that write MathLab related documents, Physics and math students will find LyX extremely useful.
InDesign requires users to depart with a large sum of money. Scribus and LyX are both open source programs, available for free, but well worth to give donations.... Some would probably argue why I did not include Quark Express in this brief comparison, but it has been too long ago (too many versions ago) since I used Quark and what I think about it probably would not do current versions justice.