Bring a large pot of salted water to a boil. Add Penne and cook until al dente, about 10 minutes. Drain.
While pasta is cooking, heat oil in a large saute pan. Add garlic and saute until golden. Add pancetta (or bacon) along with its juices and onions. Saute for 3-4 minutes or until onions are soft. Add rosemary, salt, black pepper and crushed red pepper and stir for 30 seconds. Add tomatoes and simmer for 6-7 minutes. Swirl butter into sauce.
Add drained pasta to sauce and cook over low heat for 2 minutes or until sauce is slightly absorbed by the pasta.
Sprinkle in parsley and cheese. Toss together and serve.