This query is choking the server. How can I improve it?
First add the following indices:

ALTER TABLE pet
  ADD INDEX catid_date_index 
      (catid, date) ;

ALTER TABLE petfb
  ADD INDEX petid_feedback_index 
      (petid, feedback) ;


Then try this query:

SELECT pet.* 
     , ownrs.id AS ownrunique
     , ownrs.super

     , ( SELECT COUNT(*) 
         FROM comments 
         WHERE pet.id = comments.petid  
       ) AS noOfCom

     , ( SELECT MAX(comments.comDate)     --- Unfortunately, you need
         FROM comments                    --- 2 subqueries if you want
         WHERE pet.id = comments.petid    --- 2 results from a table
       ) AS lastCom                       --- (comments)

     , ( SELECT COUNT(*) 
         FROM petfb 
         WHERE pet.id = petfb.petid 
           AND feedback IN (1, 100) 
       ) AS newLikes

     , ( SELECT COUNT(*) 
         FROM petfb 
         WHERE pet.id = petfb.petid 
           AND feedback IN (5,10)  
       ) AS newDisLikes

     , ownrs.name 
FROM 
        ( SELECT pet.*
          FROM pet
          WHERE catid = 21
          ORDER BY `date` DESC 
          LIMIT 0, 10
        ) AS pet
    INNER JOIN 
        ownrs
            ON ownrs.uniqueID = pet.ownerID 
ORDER BY p.date ;