In a large skillet, heat the olive oil over medium low. Add the onions and sauté for 15 minutes, stirring occasionally, until golden brown. Add the garlic and cook for 1 more minute.
Lightly coat a 5-quart or larger slow cooker with nonstick spray. Add the sautéed onions and garlic. Top with the tomatoes, chicken broth, salt, paprika, and black pepper, then stir to combine. Cover and cook on low for 5 to 6 hours or high for 2 to 3 hours, until the tomatoes are very soft. With an immersion blender, purée the soup until smooth. If you do not have an immersion blender, carefully transfer the soup to a food processor or blender and purée in small batches.
Stir in the orzo, then increase the heat to high. Let cook, uncovered, until the orzo is tender, about 20 to 30 minutes, stirring two or three times throughout and checking the orzo for doneness. Stir in the half-and-half, if using. Serve hot, topped with Parmesan and basil or parsley as desired.
