For something that is frequently overlooked or gotten wrong, this article on software branding is chock full of common sense. Although the examples use Windows artifacts, the guidelines apply very broadly to software we all create.
On another note, I am happy to see this idea dawn on folks across Microsoft. Now if we can strike the right balance between the whole technical v/s visceral v/s behavioral v/s reflective aspects, it'll portend good things to come. The innovations in the Shell in Windows Vista, and platforms such as WPF and WPF/E will surely help.