No, you don't need to use domain/url masking. You can purchase your domain name from any registrar and just point it to your webhost's DNS servers. So long as you have a decent webhost, they'll let you add as many domain names as you want to your hosting account (either as aliases or separately hosted sites), and those domains will be properly set up.
Domain/url masking is where a 3rd party is used to redirect to your pages in a way that conceals the real urls from the user (at least in the browser's address bar). This is usually only done for free webhosting where you don't have the ability to actually set up a domain name through the webhost's DNS service. Usually it's just an iframe or using mod_rewrite to set up a proxy. But this is very kludgy and not an ideal setup.