Without knowing the table structure / execution plan (likely missing an index) here is one way to try and speed up the query. This builds a limit list of based on the company. With the thought that it will cut down on the number of rows to be considered in the where clause as a result of the left joins.
DECLARE
@M_username int,
@M_urlorcatalog varchar(100)
SET @M_username=@username
SET @M_urlorcatalog=@urlorcatalog
SELECT
c.dataID
, c.userid
, c.companyname
, c.urlorcatalog
, c.dataentrytype
, c.[Date]
INTO #Company
FROM companyinfo c
WHERE
COMPANY.userid=@M_username AND
COMPANY.urlorcatalog LIKE '%'+ @M_urlorcatalog + '%'
SELECT
COMPANY.urlorcatalog AS 'Source'
, COMPANY.companyname AS 'Companies'
, CATEGORY.categoryname AS 'Category'
, REGION.regionname AS 'Region'
, usr.name AS 'User'
, count(email.email) AS 'Collection'
, COMPANY.dataentrytype as 'Type'
, COMPANY.date AS 'Date'
FROM #Company COMPANY
INNER JOIN dbo.emailinfo email ON COMPANY.dataID = email.DataID
INNER JOIN dbo.userinfo usr ON COMPANY.userid = usr.ID
LEFT OUTER JOIN dbo.category CATEGORY ON COMPANY.category=CATEGORY.ID
LEFT OUTER JOIN dbo.regioninfo REGION ON COMPANY.region=REGION.ID
GROUP BY
COMPANY.urlorcatalog
, COMPANY.companyname
, CATEGORY.categoryname
, REGION.regionname
, COMPANY.dataentrytype
, COMPANY.date,usr.name
ORDER BY COMPANY.date DESC
DROP TABLE #Company