You've probably seen the various lists of devices that are slated for an Android Ice Cream Sandwich update from their manufacturer, but what are you to do if your Android device isn't on the short list to get Android 4.0? Turn to custom ROMs, of course.
As far as custom ROMs go, CyanogenMod is without a doubt the most organized project, and likely the most stable and best thought out unnoficial version of the Android OS. The current version 7 supports a wide array of devices, but a lot of things are changing with CyanogenMod version 9, the version based on the Android 4.0 source code. Some past devices won't get Ice Cream Sandwich and other new devices will, so it is quite difficult to figure out if your specific smartphone will be supported.
Fortunately, the CyanogenMod team recently released a flowchart, which you can see below the break, to help clear up the confusion. As far as the basics go, anything with less than 512MB of RAM or that doesn't have a GPU is immediately disqualified, while those with uncommon chipsets have a mere 5% chance of getting the update. The best case scenario is still if the manufacturer releases Ice Cream Sandwich, but there is a 50% chance for you to get the update as long as your device has a dedicated GPU, has been slated for merger on gerrit, or there is a device with a similar device getting CM9.
If your device meets all the hardware requirements, but doesn't have an official sponsor yet, you still have a 10% chance of getting the update. Even if the build isn't official, there is also the possibility for an independent developer to take the CyanogenMod source and try to build it into a working ROM for any given device.
Although the chart offers no definitive indicators, it is quite a helpful resource for those wondering if their manufacturer-abandoned device will still get the latest updates. It's always worth hoping, and often you will be surprised at what the open source community can do.