Sitecore DMS uses MaxMind web services by default. There is a MaxMindProvider
class in the Sitecore DMS which extends LookupProviderBase
class and gathers the information about the visitors in a way which fits well with Sitecore approach.
I assume that MaxMind services for Sitecore are more expensive (I haven't checked it, but this is what you've written in the question) cause they are prepared for the Sitecore specifically and you don't need to do any coding to enable them - there are out of the box with clean Sitecore DMS installation.
Still you can use your own provider for the GeoIP data and implement it in your own way, e.g. using the standard MaxMind services.