Eu os uso da seguinte maneira:
Texto simples
Se essa categoria incluir formatos um pouco mais elaborados, como YAML ou arquivos de propriedades, é a melhor opção para o que você espera que as pessoas leiam e editem manualmente. Outra grande vantagem é a simplicidade de modificá-lo através de um pequeno script (por exemplo, sed).
Nada supera a simplicidade e facilidade de uso. Quando a equipe de suporte precisar configurar algo em uma máquina remota (por exemplo, resolver o problema de um cliente), ou a TI precisar reconfigurar vários servidores que executam seu software, eles agradecerão por escolher esse formato. Isso também evita que você escreva um software único que faz isso por eles.
XML
Concordo com o @Ingo aqui - ao contrário do texto simples, o XML é mais difícil de processar por meio de scripts e um pesadelo para editar manualmente.
Ainda assim, se você possui dados com alguma estrutura elaborada em que o YAML se torna indecifrável e ainda deseja que seja legível por humanos e editável, o XML provavelmente é a melhor opção.
Banco de Dados Relacional
Uma ótima opção para quando você tem muitos dados (o que tornaria complicado o texto sem formatação e o XML) que você ainda pode permitir que terceiros editem manualmente - via comandos SQL e até GUIs.
Outra vantagem é que seu código que gerencia o conteúdo é muito legível. @ Richard-Harrison deu uma boa lista de outras vantagens em sua excelente resposta.
Banco de Dados NoSQL
Uma vantagem sobre o RDBMS é a escalabilidade por meio da distribuição, o que provavelmente não é muito relevante para a sua pergunta. As vantagens provavelmente mais relevantes são a simplicidade de um armazenamento de valores-chave e a flexibilidade da falta de esquema (isso é uma palavra?). Quando você se encontra quebrando o paradigma relacional: apenas armazena blobs no banco de dados, acessa-os por chave e processa-os através do código, e considere esta opção. Algumas opções (por exemplo, o CouchDB) são muito portáteis, ocupam pouco espaço e também podem ser dimensionadas para oferecer uma boa alternativa não relacional ao MySQL e SQLite.
Binário
A vantagem do binário é que ele é rápido e compacto. Quando a única coisa que precisa ler e modificar seu arquivo é um programa e os dados não se encaixam no paradigma relacional ou na velocidade é realmente importante, essa pode ser uma boa escolha. Provavelmente, o melhor ajuste para arquivos de mídia.
Devo salientar, no entanto, que ainda não encontrei um caso em que o acesso simples aos dados do programa não seja necessário em algum momento por razões que não foram consideradas durante o design inicial. Atualmente, eu pessoalmente busco a opção de banco de dados para qualquer outra coisa que não os arquivos que tenham formatos padrão e precisam ser codificados / decodificados por outro software (por exemplo, áudio, vídeo).
Nota: há um equívoco comum de que o binário é opaco e, portanto, de alguma forma mais seguro. Sem proteção adicional, não é - se alguém quiser invadir seu software, simplesmente armazenar suas configurações ou o que quer que seja em binário não as impedirá.
Arquivo compactado
Não é realmente uma alternativa ao acima, mas sim uma medida extra.
Vantajoso quando você precisa transmitir coisas pela rede ou quando armazena muitos dados e deseja economizar espaço. Observe que o espaço de armazenamento geralmente é abundante atualmente, portanto, considere sua plataforma de destino.
Atualmente, executa muito rapidamente quase tudo (lei de Moore em ação, bebê), portanto, o único motivo para não usá-lo é que ele adiciona complexidade ao seu código. Não é muita complexidade, mas ainda é uma violação do princípio do KISS. Especialmente complicado para arquivos de configuração que precisam ser editados manualmente ou via script - e se você realmente precisar economizar espaço, provavelmente deverá usar a opção de banco de dados.