Chauffer l'huile dans une grande marmite en acier inoxydable. Ajouter les légumes et les herbes hachées et faire sauter avec une cuillère en bois jusqu'à ce que les légumes soient tendres.
Baisser le feu et ajouter le bâton de beurre, de la farine, du poisson ou de bouillon de légumes, sel de mer et poivre noir. Remuer constamment jusqu'à ce que bien mélangé et lisse, environ 6 à 8 minutes. Porter à ébullition et laisser mijoter très doucement, en remuant de temps en temps, pendant environ 15 minutes. Ne pas laisser le beurre au brun.
Ajouter la crème, la moitié-moitié, la chair de crabe, l'assaisonnement et marsala ou du vin de Xérès. Remuer jusqu'à ce que bien homogène et laisser mijoter très doucement environ 5 à 10 minutes.
Verser la soupe dans des bols et garnir de tranches d'oignons verts frais sur le dessus. Servir avec des quartiers de citron frais sur le côté, si vous le souhaitez.