For me I keep them in my collections or use them to trade for other pets I love. If I accept I will try to "pass on the kindness" usually here on CS or on other games as well by giving gifts or being extra kind, offering lots of help, etc.
I have canceled a couple gifts but I don't often. Sometimes during events people will offering me a pet I'm actually hoarding to help me "complete my collection." I like to cancel those and encourage the user to gift it to someone who is missing it if it seems like they don't realize its a hoard I'm looking for. I get extremely confused though when I gift comes through without a message, sometimes I accidentally leave them to rot because I'm not sure what to do. It hasn't happened as much now that I put that in my trade rules though.
I like to give gifts to people who have said something I like or who have something interesting on their profile. I love to randomly gift under-appreciated dress-ups that I really love or am impressed by! I never expect users to keep any gifts I give them. Whether its something they love or helps them get something they love it doesn't matter to me!