En una olla, pon los jitomates, el ajo y el chile ancho sin tallo ni semillas. Cúbrelos con agua y hierve a fuego medio-alto de 10 a 12 minutos o hasta que los jitomates estén cocidos. Una vez que se enfríen un poco, ponlos en una licuadora o procesadora con 1 taza del agua donde se cocieron, la cebolla y una cucharadita de sal. Procesa hasta obtener un puré suave.
En una olla grande, calienta el aceite a fuego medio-alto. Añade el puré jitomate y cocina de 5 a 8 minutos, revolviendo de vez en cuando, hasta que se espese y tenga un color más oscuro. Reduce el fuego a medio y agrega el puré de frijol y el caldo o agua, hierve de 10 a 15 minutos hasta que la sopa se haya sazonado y tenga una consistencia cremosa. Rectifica la sazón. Apaga el fuego ya que se espesa rápidamente.
Una vez que se enfríe, la sopa sola se puede guardar en un recipiente tapado y refrigerar hasta por 4 días. Ya que se espesa mientras se enfría, puede ser que necesite agua o caldo para diluirla cuando la calientes otra vez.
Sirve la sopa en tazones y ponle encima una cucharada de crema y una de queso, un puñado de tiritas de tortilla, unas cuantas tiritas de chile y aguacate picado. También puedes poner las guarniciones en platos pequeños en la mesa para que cada uno le ponga a la sopa lo que quiera.