I hate to sound like an ass, but there is a massive difference between ICA and X11 or VNC as far as real world implementations go. Aside from the overwhelming technical differences, real world usage scenarios are also vastly different. I suppose I'm biased, as we're a Citrix shop here, but one of these things is definitely not like the other, rightly so. X11 is flexible enough to be a remote display protocol, and VNC simply does what it set out to; not bad in either case.
Published applications, server clusters, connection management... I could go on for a good while regarding the merits of Citrix.