Você não mencionou o uso de HTTP em qualquer lugar, mas marcou as perguntas como "aplicativos da web" e "web-farm", por isso estou assumindo que isso é o que seu aplicativo usa; Se este for o seu caso, então isso se parece com o tipo exato de trabalho que um proxy reverso existe para.
Você configura N servidores internos, cada um executando em seu próprio endereço IP interno, e configura o IIS (ou qualquer servidor da Web que você esteja usando) em cada servidor para manipular os nomes de sites que o servidor atenderá.
Em seguida, você fornece ao seu proxy reverso um endereço IP interno que pode falar com o servidor interno e um endereço IP público externo.
Você faz com que todos os nomes DNS públicos apontem para o endereço externo do proxy reverso.
Por fim, você configura seu proxy reverso para que as solicitações de um determinado nome do site sejam encaminhadas ao servidor da Web interno que está realmente hospedando-o.
Et voilà.
Eu tenho certeza que tanto o ISA Server 2006 quanto o Forefront TMG 2010 podem fazer isso facilmente, mas é claro que você pode usar qualquer software de proxy reverso que você queira.
Claro, você pode usar uma matriz de proxies reversos com balanceamento de carga para alta disponibilidade e balanceamento de carga.