Pour enough olive oil into a skillet to coat the bottom; cook and stir onion, garlic, and rosemary over medium heat just until onion is soft, 5 to 10 minutes. Add butter and flour; cook and stir until butter is melted and flour is dissolved, 3 to 5 minutes.
Mix broth, white beans, asparagus, cream, salt, and pepper into onion mixture; bring to a boil. Reduce heat to medium, cover skillet, and simmer for 10 minutes. Remove skillet from heat and cool for at least 5 minutes.
Pour soup into a food processor or blender no more than half full. Cover and pulse a few times before leaving on to blend for about 3 minutes. Puree in batches until smooth. Pour soup through cheesecloth or strainer.