It's not necessarily an "either or" situation. I haven't used LINQ in a production application yet, but mostly because my former DBA forbade it based on info from the beta days. I spent a fair amount of time researching it to solve some fears about it.
* in the LINQ designer you can drop sprocs just like tables. They show up in the side bar as methods, but you can use them in your queries more or less the same way.
* You can also instruct the tables to use specified stored procedures for insert/update/retrieve operations.
This solved the "we must use stored procedures" mandate for me. Using these two methods you can use LINQ to SQL to easily populate business objects while funneling all of the SQL through stored procedures. In other words, your DBA will never know.
If you don't go the sproc route, I would recommend using the built in logger to evaluate the queries being generated during development. Usually they're pretty good, but every once in a while it does something wonky.
Justin