Sauté leeks and onion in butter in a large Dutch oven until tender. Add water, potatoes, carrots, and salt. Bring to a boil. Reduce heat; cover and simmer 15 minutes. Stir in rice and asparagus; cover and simmer 20 minutes. Add spinach; cover and simmer an additional 10 minutes. Stir in half-and-half. Heat thoroughly, and ladle into individual soup bowls.