I'd also mention Unity3D, it's really more designed for game development but has good capabilities for 3D graphics, scripting (in javascript or Mono/C#), physics, etc. and can be used as a simulator if you are willing to write or integrate some of the robot-specific functionality yourself (sensors, algorithms, etc).
Plus, it is cross platform, the basic version is free, and it can make some very nice looking demonstrations with minimal effort.