This soup is super creamy in texture, but it contains very little actual cream. The butter and flour mixture -- what's called a roux -- gives it body and silkiness.
In a large pot, cook spinach in boiling salted water until wilted; drain. When cool, squeeze out as much liquid as you can.
In a medium pot, melt butter over medium. Add onion and cook, stirring occasionally, until softened, 8 minutes.
Add flour and cook, stirring, until combined, 1 minute.
Whisking constantly, add broth and 1 cup water and bring to a boil over high. Reduce heat and simmer, whisking occasionally, 10 minutes.
Add cooked spinach and cilantro; cook until cilantro is just wilted.
Transfer mixture to a large bowl. In batches, fill a blender halfway with mixture and puree until smooth; to allow heat to escape, remove cap from hole in lid, cover lid with a dish towel, and hold down firmly while blending. Return soup to pot as pureed.
Add cream and heat over medium until warmed through. Season with salt and pepper. Thin with broth or water, if desired.
To store soup, let cool, then cover and refrigerate, up to 1 day.