These are what's known as Shadow Copy Folders. 
Simplistically....and I really mean it:
When ASP.NET runs your app for the
  first time, it copies any assemblies
  found in the /bin folder, copies any
  source code files (found for example
  in the App_Code folder) and parses
  your aspx, ascx files to c# source
  files. ASP.NET then builds/compiles
  all this code into a runnable
  application.
One advantage of doing this is that it prevents the possibility of .NET assembly DLL's #(in the /bin folder) becoming locked by the ASP.NET worker process and thus not updatable.
ASP.NET watches for file changes in your website and will if necessary begin the whole process all over again.
Theoretically the folder shouldn't need any maintenance, but from time to time, and only very rarely you may need to delete contents. That said, I work for a hosting company, we run up to 1200 sites per shared server and I haven't had to touch this folder on any of the 250 or so machines for years.
This is outlined in the MSDN article Understanding ASP.NET Dynamic Compilation