Minha preferência pessoal são arquivos XML:
Na maioria dos casos, não espero que o usuário precise editar suas definições de configuração, para que o problema de legibilidade humana não seja um argumento nesse caso.
Se eles precisarem editá-los, você pode fornecer uma ferramenta de edição - isso evita que o usuário faça algo estúpido com os dados. Se eles quiserem restaurar as configurações padrão, basta dizer-lhes para excluir o arquivo x, o que a maioria dos usuários se sentirá à vontade.
Observe que você ainda precisa ter cuidado para ter permissão para armazenar seu arquivo, pois alguns locais não têm acesso de gravação por padrão no Windows 7 etc.
Os arquivos INI são uma boa maneira padrão de armazenar a configuração e são testados e testados, mas me parecem um pouco 'Windows 3.1'!
Provavelmente, a melhor opção se você deseja que o usuário possa mexer com seus dados
Eu pessoalmente iria me afastar do registro. Por um lado, você não pode garantir que o usuário tenha as permissões necessárias para ler / gravar onde quer que você queira armazenar seus dados.
Nos sistemas operacionais mais recentes, onde a virtualização do registro entra em ação, isso pode causar uma grande confusão, porque você não pode 'ver' as configurações virtualizadas - isso nos incomodou mais de uma vez, onde passamos horas tentando descobrir por que algo não estava funcionando.