I'm building a web app with google app engine and python. I've read that html5 geolocation is much more precise than IP geolocation, but is that precise enough to pinpoint buildings? Or is building my own map with customized coordinates a better option?
How precise HTML5 geolocation is depends entirely on what the user's browser supports.
On a phone, it may have access to the phone's idea of the user's location (based on GPS plus cell and WiFi triangulation); on a desktop machine, there's little to go on besides IPs, so it can't do any better than you could do yourself. 
But either way, the user may have disabled or limited it (or it may be disabled or limited by default for him). Or may be using a browser that doesn't support HTML5 locations. Or may be using an add-on that fuzzes or flat-out lies about location.
So:

is that precise enough to pinpoint buildings?

It can be.

Or is building my own map with customized coordinates a better option?

How would that help? If you don't know the coordinates the user is at, you have nothing to look up on the map.
I want to locate the specific building the user is in. Should I use html5 geolocation or build my own custom map?