Important rule: keep the application icon not cluttered, too much details add noise to the visual recognition and make the memorizing process more random.
Don't strictly rehash the name in the representation. In the case, the application's name doesn't illustrate its role, don't create an icon which is a pure illustration of the application's name, it would add a visual abstraction layer which would slow the possibility to remember easily what an application is useful for.
Example : A web browser called "Duck" shouldn't use a duck representation for its icon, however it is ok to integrate a duck element to an icon with its own semantic.
Don't bind the icons to a linguistic related comprehension/recognition. The translation is an important issue, then we should have no obligatory connection between an icon itself and its label. In the same perspective, take by example in account that words play slows the user recognition by forcing him to observe and associate both the icon and the text label to deduce what the application is useful for.
Example : A spider web representation used in a Web browser application icon.
Don't use text words in the icons, this recommandation is related to the previous one . Take in account that icons would be difficult to translate, and harder to read than in the label. When you want use text in the icon, don't use real words in a specific language (or use a dead language like latin).
Example : A file icon shouldn't integrate a type text representation like TIFF or RTF, it is the job of the Workspace application to show the label, the type and other attributes.
Don't limit the icons to a mascot or a logo, when the mascot choice seems to be random in relation with application role. The cool factor with the icon creation process shouldn't be what you are looking for, but just a very desirable side effect.
Example : the IM application Adium use a Duck for its icon, it's pure cool factor, but this factor confuses the user. What an application with a duck icon can do ?
Don't use violent imagery. Some users would be scared to click on such icon by seeing it as a destructive action that could break whatever part of the system. Destructive icons or words like "kill" should be avoided also.