Don't send it to canon. What you do is you get a pair of tweezers, lift the rubber and put a small drop of superglue on the plastic. Make sure you don't glue the dial in place though and it is probably worth waiting half an hour and doing the same thing on the other side so two points are keeping it in place.
It sounds like the rubber drying out, there are some easy fixes recommended. I've had at least five 40D's, actually, more like 7 or 8. I sold my last one this Spring. I've never seen the issue, so it does sound like a age related issue.
Just yesterday had the same problem. Instead of tweezers I used a tiny screwdriver to lift the flexible rubber from the plastic beneath it. And instead of glue, I then applied a bit of rubbing alcohol to the general (small) area between the rubber and plastic and turned the plastic 360 degrees to enable the rubbing alcohol to 'clean' the entire plastic wheel/rubber area. Somehow I think the rubber now is better able to 'grip' the plastic beneath it.12 hours later, my main dial (top dial) is still working properly. I will report back.