Finding the name of the supplier that supplies the most parts
You didn't specify your DBMS, so this is ANSI SQL:

select sid, 
       num_products
from (
  select sid, 
         count(*) as num_products,
         dense_rank() over (order by count(*) desc) as rnk
  from catalog
  group by sid
) t
where rnk = 1;


If you need the information from the supplier table as well, you need to join it: 

select s.sname, 
       t.num_products
from (
  select sid, 
         count(*) as num_products,
         dense_rank() over (order by count(*) desc) as rnk
  from catalog
  group by sid
) t
  join suppliers s on s.sid = t.sid
where t.rnk = 1;


Online example: http://rextester.com/HGL10937