Heat the oil in a large pan over a medium heat. Add the onion and cook for 4 minutes, until softened. Add the carrot, fennel, garlic and chilli and cook for about 6 minutes, until softened. Stir frequently and add a splash of water if the pan gets dry. Stir in the tomatoes and leave the sauce to simmer, uncovered, while you prepare the meatballs.
Place all of the ingredients for the meatballs in a large bowl and mix thoroughly with a spatula. Using wet hands, roll the mixture into 20 small meatballs. Wash your hands thoroughly. Gently stir the meatballs into the tomato sauce and cook, uncovered, for 15 minutes or until the meatballs are cooked through.
Meanwhile, cook the spaghetti according to the instructions on the package. Divide the cooked spaghetti between warmed serving bowls. Ladle the meatballs and tomato sauce on top. Sprinkle over the herbs and serve.