How to know if an app is ICS compatible? I am thinking to upgrade my phone with Android 2.3.7 (Gingerbread) to 4.0.3 (Icre Cream Sandwich), but I would like to know first, if the applications I normally use are available and working on ICS.

Does exist a way to know it?
You can check the changelog and comments on the Market for information, quite many apps have recently been updated to be ICS compatible and there's usually a mention of this in the changelog. Also, if the app isn't compatible, there's usually a comment about this.

In my experience, almost all of the apps I use are compatible with ICS or have been updated. Some may not have all the compatibility features such as the new menu style, but ICS is backwards compatible with the old style too.

EDIT: Developers can also specify the parameter android:MaxSdkVersion in their AndroidManifest.xml which restricts the application from running (and AFAIK also from showing up in the market) on newer platforms. I haven't published any apps in the Market so I'm not sure if there are separate settings in there to restrict the apps from installing on higher version platforms.

You can try to check the AndroidManifest.xml of your apps by using android-apktool, but this requires you to know how to get the .apk files to your pc.