Buenas, César.
He conseguido hacer algo, pero no esta del todo bien el código.
Me ha quedado así:
import java.util.Scanner;
public class Test{
    public static void main(String []args){
        System.out.println("Los cantantes famosos en la lista son:");
        ListaCantantesFamosos listacantantes = new ListaCantantesFamosos();
        listacantantes.cantantesEnLaLista();
        System.out.print("Introduzca otro cantante:");
        String entradaTeclado = "";
        Scanner entradaScaner = new Scanner(System.in);
        entradaTeclado = entradaScaner.nextLine();
        if(entradaTeclado.equals("")==false){
        listacantantes.addNombre(entradaTeclado);
        listacantantes.cantantesEnLaLista();}
        String entradaDesicion = "";
        System.out.print("Deseas entrar más cantante: Sí/No: ");
        entradaDesicion = entradaScaner.nextLine();
        if(entradaDesicion.equals("No")==false || entradaDesicion.equals("no")==false || entradaDesicion.equals("Sí")==false || entradaDesicion.equals("sí")==false || entradaDesicion.equals("Si")==false || entradaDesicion.equals("si")==false){
        while(entradaDesicion.equals("Sí")==false){ //|| entradaDesicion.equals("No") == false || entradaDesicion.equals("no") == false){
                System.out.print("Deseas entrar más cantante: Sí/No: ");
                entradaDesicion = entradaScaner.nextLine();
        }
    }
        if(entradaDesicion.equals("No") || entradaDesicion.equals("no") ){
            System.out.println("Gracias por utilizar nuestro programa.");
            }
        while(entradaDesicion.equals("Sí") || entradaDesicion.equals("sí") || entradaDesicion.equals("Si") || entradaDesicion.equals("si") ){
            if(entradaDesicion.equals("Sí") || entradaDesicion.equals("Si") || entradaDesicion.equals("sí")|| entradaDesicion.equals("si"))
            System.out.print("Introduzca otro cantante:");
            entradaTeclado = entradaScaner.nextLine();
            if(entradaTeclado.equals("")==false){
            listacantantes.addNombre(entradaTeclado);
            listacantantes.cantantesEnLaLista();}
            System.out.print("Deseas entrar más cantante: Sí/No: ");
            entradaDesicion = entradaScaner.nextLine();
            while(entradaDesicion.equals("")){
                System.out.print("Deseas entrar más cantante: Sí/No:");
                entradaDesicion = entradaScaner.nextLine();
            }
            if(entradaDesicion.equals("No") || entradaDesicion.equals("no") ){
            System.out.println("Gracias por utilizar nuestro programa.");
            }
        }
        }
}
Ya verás, que cumpliéndose la primera condiciones, si 
        if(entradaDesicion.equals("No")==false || entradaDesicion.equals("no")==false || entradaDesicion.equals("Sí")==false || entradaDesicion.equals("sí")==false || entradaDesicion.equals("Si")==false || entradaDesicion.equals("si")==false)
Entramos en un bucle infinito. Sólo se puede salir de él respondiendo a la pregutna  con un  "Sí".
No entiendo por qué no me deja poner más de una condición en el bucle while. Es decir, que quede así:
while(entradaDesicion.equals("No")==false || entradaDesicion.equals("no")==false || entradaDesicion.equals("Sí")==false || entradaDesicion.equals("sí")==false || entradaDesicion.equals("Si")==false || entradaDesicion.equals("si")==false){
//Instrucciones para cumplir
}
Gracias