Olá Lucas França,
O parseInt deve ser usado sempre que você precisar de um número inteiro, é importante notar que você não está usando Java, mas sim Javascript e há uma grande diferença aqui.
Digo isso porque o Java é o que chamamos de fortemente tipado, enquanto o Javascript é fracamente tipado, na prática isso quer dizer que no Java você deve declarar o tipo de cada objeto criado, seja um número, string ou o que for, no javascript há o que chamamos de tipagem inferida, onde o interpretador em tempo de execução interpreta a informação e determina o tipo, podendo inclusive alterar o tipo dela de acordo com o comando dado.
Neste cenário temos a situação que você falou, alguns operadores podem interpretar tipos de informações de forma diferentes, o operador +
pode interpretar que quando usado com 2 números ele deve somar e quando estiver com 2 strings deve concatenar.
Quando você usa o parseInt você está de forma explicita convertendo um objeto, seja ele String ou número de ponto flutuante (doubles e floats) em um número inteiro.
Isso tem várias aplicações, você pode precisar converter strings por exemplo para usar em contas, assim como você pode decidir que precisa em algum caso específico que o resultado de uma divisão seja um Int (ele pode vir quebrado, ex. 1,5), quando convertido para int a casa decimal é descartada, dando para você um número inteiro que pode ser usado tanto em uma conta quanto para concatenar ou atribuir a uma variável.
As aplicações dependem principalmente da sua necessidade.