Well it really depends on your application.
Let me give you an example of architecture that I would use.
- MVC site project
- Business layer project
- Persisten layer project
- Common layer project
- Tests project
1 Controllers, Views, ViewModels. This is where you transfrom your BL models into ViewModels.
2 Your business layer. This can be omitted if your BL is on Database and you are only interested in Displaying data. However if you starting new project this is where you BL should be. All your business decisions, validations an so on.
Also if you BL model doesn't match your database this is where you would transform your database data into BL models
3 This layer is just for talking to database. With minimal logic.
4 Common object. Like Extension methods. Or other objects used through application. This should be as light as possible!
5 This is where you write tests for you application - this can be splitted into multiple projects if you prefer to have a project for every layer
Notes:
1 - Here you should also think about your View and how will you separate concerns between Controller, ViewModel and your HTML, javascript etc... This really depends on complexity of your views.
I recommend you using Dependency injection it is great tool escpecially if you are building enterprise application.