Sim, você pode configurar um computador em casa para ser um servidor e fornecê-lo à Internet. Você não precisa necessariamente de um IP estático ... mas torna as coisas muito mais fáceis e confiáveis.
Normalmente, quando você tem um servidor público, você pode acessá-lo colocando seu endereço IP público na barra de endereço de um navegador da web. Eu posso colocar 173.194.69.100 no navegador para acessar o google.com. Um IP estático é útil porque você não precisará continuar atualizando o endereço IP para o qual o nome do domínio aponta toda vez que seu endereço IP é alterado. O DynDNS continua atualizando o registro DNS automaticamente sempre que seu endereço IP é alterado. Isso permitiria que você hospedasse um site em algum domínio DynDNS, mesmo se você tivesse um endereço IP dinâmico. Essencialmente você ainda pode hospedar um site em um IP dinâmico ... mas ninguém seria capaz de encontrar seu site em um IP em constante mudança. DynDNS e IPs estáticos são duas soluções para o problema.
Se você tiver uma configuração de Internet doméstica normal com um roteador, terá que encaminhar a porta 80 pelo roteador para apontar para o servidor. As solicitações feitas ao seu roteador pelo IP público na porta 80 serão encaminhadas para a porta 80 no servidor da Web dentro de sua rede privada.
Eu não acho que seu ISP se importe se você veicular um site, mas eles geralmente mantêm baixa a largura de banda de upload para clientes residenciais. Isso impediria que você pudesse fornecer serviços confiáveis para milhões de pessoas ao mesmo tempo.
Não tenho 100% de certeza sobre o que as empresas de hospedagem na web usam para servir sites, mas eu esperaria que o Red Hat Enterprise Linux fosse usado com bastante frequência em combinação com o Apache. O CentOS é uma boa alternativa. Eu pessoalmente usaria o servidor Ubuntu para o meu site, já que estou mais familiarizado com ele.