Should every job, SSIS project, SSRS have its own sql login
I have a bunch of sql servers and every job as well as every
  connection manager for every SSRS report &amp; SSIS project all use one
  login, sysadmin of course.


Since you asked for best practices, by using sysadmin like that you are breaking The Principle of Least Privilege which states that:


  [...] Administrative tasks are broken out using fixed server roles, and the
  use of the sysadmin fixed server role is severely restricted.





  
  I would like every SSRS, SSIS etc to use their own logins with only the required permissions.
  


I'd say creating and managing one login for each user, app, job or services would be going to the oposite extremity and that's a problem too, for, as your fellow DBA said, it would make it a really difficult job to manage so many logins, but you can achieve a middle term by using roles and Windows groups for that matter. Check the Principals doc.




  
  I also would like to know immediately what's causing blocking etc.,    rather than seeing one sysadmin login every time and then checking to 
  see what's running the offending query.
  


Quoting @Dan Guzman's comment: For the purpose of identification, you can specify the application name in the connection string instead of separate logins.

Once you configured the Connection strings and application name you can retrieve it from sys.sysprocesses by using sp_who2, sp_whoisactive or sys.dm_exec_sessions DMV.