In a large bowl, mix together meatball ingredients: beef, breadcrumbs, parmesan cheese, egg, basil, garlic powder, and salt. Using about 1,5 of meat, roll into mini meatballs and set aside.
Heat a saucepan over medium-high heat and add 2 tablespoon olive oil. Once hot, add meatballs and cook for about 6-7 minutes total, turning frequently to make sure all sides are cooked. Use a slotted spoon to transfer to plate after done cooking.
In same pan used for meatballs, at butter. It's okay if there are brown bits and some grease (drain if excessive). Once hot, add onions and let cook for about 5 minutes, stirring occasionally.
Add in garlic. Cook for another minute.
Pour in tomatoes and broth, and stir to combine. Then add in basil, honey, salt, pepper, and crushed red pepper.
Bring to a boil, then reduce to a low simmer for 10 minutes.
Using an immersion blender, regular blender, or food processor, carefully blend all soup ingredients until smooth. Pour back into soup pot. Be careful as the soup will be hot.
Add heavy cream and parmesan cheese. Stir, then add in meatballs. Bring to a simmer and cook for 10 minutes.
Serve with fresh parmesan cheese, more basil, and buttered toast.