A customer I recently worked with is in the middle of building up their CMDB in ServiceNow. They are having good success using ServiceNow's discovery tool.
ServiceNow has this whitepaper:
http://www.servicenow.com/content/dam/servicenow/documents/datasheets/ds-discovery-20130103.pdf
It operates by installing what are called "MID" Servers within your environment. Multiple of these servers can be installed in different locations, within different subnets, etc. These then go out on an ad-hoc or scheduled basis, get information out of your network and server equipment (everything IP connected) and pull it straight back into Service Now's CMDB.
There is a detailed walk through of installing and configuring a MID Server here: How to Set Up a MID Server - YouTube
The MID server requires certain ports to be opened in the firewall for updating the server, and it can also be configured to route through a proxy if desired. It also requires that some sort of permissions be cached with the MID server that it can use to log into devices on the network.
The discovery tool runs through a few steps as shown here:

So what does this discovery tool give you? Quite a bit, it turns out.
This video walks through in considerable detail the kind of information it provides (bad audio, but nonetheless interesting): ServiceNow Discovery - YouTube
There are "probes" which represent different queries that will be run on the configuration items. These probes then deliver XML data to "sensors" which then process the XML to push it into the ServiceNow CMDB, updating configuration items, and also updating the relationships between configuration items.
The probes will scan ports, if it finds an open port, it will log in and run commands in a command line environment and pull the data out. It uses SSH commands on a UNIX box and runs WMI and Registry queries on a Windows Server. There are Windows and Unix probes for CPU, Memory, Disks, Processes, Installed Software, OS Patches, OS Release, and more.