To prepare and build:
repo init -u git://github.com/nadlabak/android.git -b ics
. build/envsetup.sh && brunch umts_sholes
You can also use repo init -u git://github.com/nadlabak/android.git -b ics-nothemes
to build CM9 without the theme engine as I suspect it to cause performance issues.
More detailed instruction can be found e.g here: http://wiki.cyanogenmod.com/index.php?title=Compile_CyanogenMod_for_Sholes (but take account of the differences in the instructions published here.)
The update-cm-9...-Milestone-signed.zip will be built in out/target/product/umts_sholes, ready to be installed via OpenRecovery/updates.