There's a small confusion.
INSERT INTO, won't create a table, SELECT INTO will. Example:
--This will create a table
SELECT column1, column2, column3
INTO #TempTable
FROM MyTable
--This won't
INSERT INTO #TempTable
SELECT column1, column2, column3
FROM MyTable
Now, to answer the question. IMHO, It depends. If you don't care on the structure of your table and need something easy, you can use SELECT INTO. However, creating the table before inserting data will give you more flexibility and control on it's structure.
What happens if you need more columns than the ones that you'll have available in the select? What happens if you want an exact copy of the columns used in a query?