I started off with a copy of Blueband.master which has the below control that renders the image followed by the site name(url):
<sharepoint:aspmenu id="logoLinkId" runat="server" datasourceid="SiteMapDataSourceRoot" staticdisplaylevels="1" maximumdynamicdisplaylevels="0" accesskey="1" cssclass="logo">
</sharepoint:aspmenu>
As my company logo is a bit big, I wanted the image and site name to be displayed in seperate rows and I also wanted to apply my own styles to them.
The approach below from Heather Soloman's blog interested me.
<sharepoint:sitelogoimage id="onetidHeadbnnr0" logoimageurl="/_layouts/images/titlegraphic.gif" runat="server"/>
<asp:contentplaceholder id="PlaceHolderSiteName" runat="server">
<sharepoint:splinkbutton runat="server" navigateurl="~site/" id="onetidProjectPropertyTitle">
<sharepoint:projectproperty property="Title" runat="server">
</sharepoint:projectproperty>
</sharepoint:splinkbutton>
</asp:contentplaceholder>
But as I needed a bit more control, I finally ended up with my own code:
<asp:Image runat="server" id="XXX" ImageUrl="/_layouts/XXXMasterPages/images/xxxLogo.gif" />
<p class="xxxSiteNameContainer">
<SharePoint:SPLinkButton runat="server" NavigateUrl="~site/" id="onetidProjectPropertyTitle" CssClass="xxxSiteName">
<SharePoint:ProjectProperty ID="ProjectProperty1" Property="Title" runat="server" />
</SharePoint:SPLinkButton>
</p>