I think the reason icons have appeared less in programs is because developers are learning that icons are just not as useful as they used to think.
The idea behind putting icons in menus is that the user can see the icon alongside a textual description, and will be able to recognize it on a button in the future.
However, in order to learn the meaning of an icon, the user first has to search through various drop-down or context menus to find the function they need.
Also, having lots of icons all over the place just adds clutter. That's why Microsoft redesigned the GUI interface in Office 2007. Not to mention that most people would rather memorize a keyboard shortcut than a button icon.
Letting people associate functionality with a word or name is better than an icon, because it's often easier to remember or understand. Also, you can't type an icon.
As it turns out, being able to type something very useful. You can search for it in help files and on the internet, and you can explain it to someone else.
And, there's this:
Mac OSX's help menu:
The new alpha release of Blender:
Gnome Do:
Autocomplete is an extremely powerful tool in terms of usability. I wish more applications incorporated it.
Heck, as developers, you've probably used an IDE with autocompletion (such as Visual Studio's Intellisense). Not to mention IM clients like Digsby and Adium.
So, basically, icons used to appear in menus so the user could learn their meaning. However, requiring the user to memorize and recognize icons is unnecessary. You should try to only use icons when the meaning of the icon is self-evident and requires no memorization.