Heat the oil in a frying pan over a low heat, add the onion and cook, stirring occasionally, for 6–7 minutes until softened. Split the sausage open and break up the sausagemeat with a fork. Add the sausagemeat chunks, fennel seeds and chilli to the pan and increase the heat to medium. Cook, stirring, for 4–5 minutes, until the sausagemeat is golden brown.
Add the celery, bay leaf and wine and simmer until most of the wine has evaporated. Stir in the tomatoes, season with salt and bring to the boil. Reduce the heat and simmer for 25–30 minutes until thick. Stir in the milk and simmer for a further 5 minutes. Remove the celery stick and bay leaf from the sauce.
Meanwhile, cook the pasta in a large saucepan of salted boiling water according to the packet instructions until al dente.
Drain the pasta and stir into the sauce. Serve immediately with some grated Parmesan or pecorino on the side.