The less-quick-than-it-used-to-be version:
IPs are assigned in blocks by IANA to the Regional Internet Registries (RIR). See this (list and map) of the RIRs for more. The RIRs then lease out the IPs to individual companies (usually ISPs). There are requirements (including monetary and proof of use) for getting a distribution and failing to maintain these means you loose your lease.
Once a company has leased one or more blocks from the RIR, they need some way of telling The World where to find a particular IP (or set thereof: subnets, et alli). This is where BGP comes into play. BGP uses a large network concept called an Autonomous System (AS), where the AS knows how to route within itself, but only knows how to find the "next hop" toward external blocks. AS numbers are managed by IANA.
Within an AS, even one as large as an ISP, they might use several routing protocols (RIP, OSPF, BGP, and ISIS come to mind) to route traffic internally. It's also possible to use Static Routing Tables, but entirely impractical in most applications. Keep in mind that all this routing stuff is very simplified, the real world doesn't have cutesy bubbles with links directly between bubbles.
Humans don't remember numbers well, so we invented host names. Skipping the history we use the Domain Naming System (DNS) to keep track of what hostname (eg StoneyForest.net) points to what IP address (eg 188.8.131.52). There is a central registry for these, also managed by IANA, and they determine what Top Level Domains (TLD) (eg ".com" or ".net") go in the Root Zone, which is served by the Root Servers. IANA delegates administration of the "root zone", this administrator only talks to qualified Registrars.
You can use a Registrar to "purchase" a domain name, which is a subdomain of a TLD. This registration essentially creates that subdomain and assigns you control over it's Name Server (NS) and Glue (A) records. You point these to a DNS server that hosts your domain. When a client wants to resolve your IP from a domain name, the client contacts their DNS server which does a recursive lookup, starting with the root server, finding your DNS server and eventually getting the relevant information.
As for the "governing bodies": everyone just agrees to use them. There are no (or very few) laws requiring anyone to cooperate. The Internet works because people choose to cooperate. The governing bodies provide a means of easy cooperation. All the various RFCs, and "Standards" and such - nobody is being forced to use them. But we understand that society is built on cooperation, and it's in our own self interests to do so.
The efficiency bred by cooperation is the same reason BGP is popular, everyone basically agrees to use it. In the days of ArpaNet they started with hand configured route tables; then gradually progressed to a more comprehensive system as the Internet grew in complexity. Similarly name resolution stated with host files that networks would distribute, and eventually grew into the DNS system we know today.
On a side note, this cooperation trusts IANA a lot, as you've seen they manage most of the various systems' cores. IANA is currently a US Government sponsored Non-Profit corporation (like the US Post Office), it is not part of the government, though only barely removed. In past years there was concern that the US Goernment might exercise some control over IANA as a "weapon" against other world governments or civilians (particularly through laws like SOPA and PIPA, which were not passed, but may be the basis for future laws).
Currently IANA has taken it upon themselves to raise funding (despite being a non-profit company) through the creation of new TLDs. The "xxx" TLD was widely viewed as an extortionist-style fundraising campaign, as a large percentage of registrants were "defending" their name. IANA has also taken applications for privately owned TLDs (at $180,000 each; they have suspended the application process after being inundated with applications, nearly half being from Amazon alone; no private TLDs have been issued at the time of writing).