My assumptions are mostly correct.
Its a plugin, not a program.
It has an online database for storing the domains that are known for advertising.
It blocks based on page load. So what does that mean? well, when you click a link, your browser sends the request to the server for the information (basically the HTML text that makes up this page). The plugin kicks in and starts scanning the incoming text for the specific 'offending' lines of text. When it sees these, it removes them thus preventing you from seeing the adds. It does add CPU cycles (barely noticable really) so it technically adds time to display the page. However, since the ads dont load, the total time to load the page is far less than before. Pros for this is that you dont have to worry about the advertisers getting new domains to show you new ads. Cons would be that when you start your browser for the first time, the plugin has to download the list of 'bad' domains in order to function 'correctly'. The method I describe is very similar. What I describe you have to update manually instead of having a list get updated for you. But, the list is public and a simple copy & paste (several times unfortuantly) will serve the same purpose. I simply prefer to not have "extra, unneeded" programs and plugins installed onto my computer. Think Norton Utilities here. Everyting that the norton utilities did, you could do yourself if you knew where to go and how to do it. The difference being, having the utilities installed ate memory, cpu cycles, and possibly bandwith due to updates.
If adblock is working for you, then keep using it. If you are a tweaker, then you know there are better options available to you.