I have used Dynamips Cisco IOS emulator (open source) on early days of my Cisco certification preparation labs. Recently found GNS3 site (http://www.gns3.net/) that provides complementary simulation tools for Dynampps including sample labs and tutorials. Hope this is informative for people without cisco physical hardware devices to practice many wonderful features that Cisco IOS providers.
GNS3 is a graphical network simulator that allows simulation of complex networks.. GNS3 is an excellent complementary tool to real labs for network engineers, administrators and people wanting to study for certifications such as Cisco CCNA, CCNP, CCIP and CCIE as well as Juniper JNCIA, JNCIS and JNCIE.
Following screenshot taken from http://www.gns3.net/screenshots/
GNS3 has been developed in python and through PyQt the GUI part is made with the powerful Qt library , famous for its use in the KDE project. GNS3 uses the SVG technology (Scalable Vector Graphics) to provide high quality symbols for designing your network topologies.