There's a dizzying array of indexing packages available on CTAN.
For my current project, I'm using LuaLaTeX, but most of the time I just use straight LaTeX (and on occasion XeTeX).
My needs for this project are pretty pedestrian: the book I'm typesetting is in English, and I don't need any sort of custom collation. However, it's not really clear to me what the best choice is.
EDIT:
I noticed that some of the packages make reference to the memoir class, which I am currently using.

imakeidx. because of the way that input is handled, a decision to have one or more than one index can be held off until quite a late point in writing; mark all the items that you want to index with a simple\index{...}and if a second index is wanted, it can be added simply by inserting an optional argument,\index[xxx]{...}to just the appropriate items rather than having to change anything more extensively. but i have never used it withmemoir, and don't know about that compatibility. – barbara beeton Jun 03 '16 at 00:52imakeidxlater. I had issues withimakeidxalthough I can't now remember the details, so tend to avoid it. So I tend to loadmakeidxand only make things fancier if I need to. – cfr Jun 03 '16 at 00:55xindyto be the general-purpose solution, but the fact is that it can be complicated to use (because it can do complicated things). Worse still is its incompatibility with hyperref. So, on the one occasion I had to generate multiple indices, I usedmakeindexwith theimakeidxpackage (which has never given me trouble), and this project also used thememoirclass. The only downside was that I had to manually sort one of the indices, which was tedious (but I needed to sort numbers without leading zeroes:1.9.3before1.20.2. – jon Jun 03 '16 at 04:51