Is it possible to install a higher Android version on a phone and have it still running smoothly? I have an LG Optimus One P500 phone which has an official update limited to Android Gingerbread 2.2.3. But I've heard of people installing ICS custom ROMS on their phone even though officially it is not supported. 

My phone has the following specifications:

CPU: 600MHz
RAM: 512MB
Current OS: Gingerbread (runs very smoothly with no lags for any tasks)

So I'm just trying to find out what are the minimum requirements for ICS and whether a phone will continue to function as smoothly as it did for Gingerbread.
The minimum requirements should be something around 800+ MHz CPU and 256+ RAM/ROM. That should be for a stock ICS ROM. Custom ROMs on the other side, are developed for a specific device, so their minimum requirements may be different. This can be achieved by enhancing the ROM to be able to get almost the same features (or more depending on the custom ROM) as the stock ICS.

The downside of custom ROMs is that not all go as smooth as a stock ROM, since many of them have several core items modified and under certain circumstances they might fail (or don't response in a good manner).

If your phone is rooted and you have a custom recovery, I would suggest you do a nandroid backup to save the state of the phone as it is right now and give it a try to a custom ROM. If you find the custom ROM doesn't meet your expectations, you can restore the nandroid backup and recover your previous phone ROM.

For those who aren't familiar with nandroid backup, it creates an image of the entire phone (like Norton Ghost or Clonezilla), so if you mess something up you can recover your phone from that image.