None of the things we looked at provided what we wanted either (grant it this was back in 2001). So 3-4 of us made our own. We didn't do anything with server racks (as at the time we were still mostly a Sun Micro house with the hardware actually being an entire rack or half rack). So we went the Apache+MySQL+PHP route, and made a HTML based system. We put in floor scans of the buildings/office/cubical layouts and made the cubicle/office regions as click maps so you could navigate visually to get lists of equipment in a location (as well as move equipment to and from locations). We also wrote a program that worked with a barcode scanner that allowed you to scan the barcode on the cubicle/office itself and then scan the barcodes in the office and it updated the records to that location. We had the basic info on the hardware itself (system type, mac address, serial number, barcode, cpu type and speed, hostname(s), system status (online, offline, maintenance, etc.), hard drive(s) (make, model, serial numbers, sizes), and of course location. We also had comment sections so that we could write up any issues we had, as well as a history of edits (previous locations, changes in hostname, or network information, etc).
Hardest part to maintain the system is making sure everyone uses it if they move something. It worked very well for a number of years, but has been put asside lately due to politics (it wasn't the "official" corporate inventory system). We had it because the "official" one sucked with no interface other than search, no history of changes, and no graphical interface for being able to easily set/change locations (since many people didn't remember to look at the cubicle number, but remembered it was on the second floor, third isle, first one on the left... assuming they didn't bring the barcode scanner with them).