MasterPages provide two distinct advantages:
1. They provide a clean separation between an ASP.NET Web page's form and function. The form of the page - the associated HTML - is tucked away in the template. So, if you need to, say, update the HTML template for all ASP.NET Web pages on the entire site, all you have to do is modify the template file and all of the ASP.NET Web pages that utilize that template will be updated automatically.
2. They allow for customization of the site. You could have multiple templates created and allow users to choose from one of a series of templates. When an ASP.NET Web page loads, then, you could dynamically choose the template the page should use based on the user's preferences.
Disadvantages:
1. your pages all need to have the control, it's a small bugger but still a bugger ;) and 2. your controls shift in the control tree, at runtime they no longer belong to the Page itself, but to the added control. For some (like me) this might be bugging and even interfere with working code.