Is it possible to use ido-mode completion to find definitions in a TAGS file? I suspect that ido-completing-read is part of the answer. Here's my non-working code, which shows an unpopulated ido-mode minibuffer:
(defun ido-choose-from-tags ()
"Use ido to select tags "
(interactive)
(etags-tags-apropos
(ido-completing-read "Tags: " nil t)))