There appears to be many alternative Emacs auto completion mechanisms. Without an exhaustive search, the following come to mind: ido, auto-complete, icicles, in buffer completion, minibuffer completion and standard out of the box completion. And then there is code completion. Lots of it. And much of it language dependent. It would be very useful to have an Emacs guru, or three, summarize the benefits of the major players in both code and non-code auto-completion. And this being Stack Overflow, it goes without saying that it would be good to identify the auto completion modes that work best for Emacs's IDE-like mechanisms.
Update: I just discovered the Emacs Wiki completion page which amplifies my basic question: of all these choices, what's good, what's less good and if you could only play with 2-3 which would you recommend?
I generally use two completion packages (other than the built-in TAB completion in the minibuffer and comint buffers).
pabbrev.el - which provides a suggestion at the cursor (press TAB) to accept. The choices are made by looking at word frequency. I like this because of the visual indication of what would be completed - but it mostly works for just one completion.
hippie-expand - which is generally bound to M-/ in place of dabbrev because it does all that dabbrev does and more. This works well when you might need to cycle through some alternatives, or if you want to complete a filename or something else.
I like both because they don't require any mouse movement and work quickly.