O uso de esquemas é excepcionalmente benéfico quando você tem preocupações com segurança.
Se você tiver vários aplicativos que acessam o banco de dados, talvez não queira conceder ao departamento de Logística acesso aos registros de Recursos Humanos. Assim, você coloca todas as suas tabelas de Recursos Humanos em um esquema hr e só permite acesso a ele para usuários na função hr.
Seis meses depois, a Logística agora precisa conhecer as contas de despesas internas para que possam enviar todas essas paletas de canetas azuis para as pessoas do local correto. Você pode então criar um procedimento armazenado que é executado como um usuário que tem permissão para visualizar o esquema hr, bem como o esquema de logística. Os usuários de Logística nunca precisam saber o que está acontecendo no RH e ainda assim obtêm seus dados.
Você também pode usar esquemas da maneira que cfeduke sugeriu e apenas usá-los para agrupar coisas no navegador de objetos. Se você estiver fazendo isso, tome cuidado porque você pode acabar criando Person.Address e Company.Address quando você realmente precisa de um único dbo.Address (não estou criticando seu exemplo, cfeduke, apenas usando-o para ilustrar que ambos tabelas de endereços podem ser iguais ou podem ser diferentes e esse YMMV).