This one prompts you to type a literal key sequence (exactly like with `describe-key', C-h k) and inserts it at the point in a representation that the *-set-key functions can use. As written it's bound to to C-c k, and only in the scope of elisp buffers.
(defun insert-key-sequence (key-repr)
"Reads a literal key sequence from the user
and inserts a representation of it at point,
suitable for `global-set-key' or `local-set-key'."
(interactive "KKey sequence? ")
(prin1 key-repr (current-buffer))
(insert " "))
(add-hook 'emacs-lisp-mode-hook
#'(lambda ()
(local-set-key "\C-ck" #'insert-key-sequence)))
(run-hooks 'emacs-lisp-mode-hook)
Unfortunately it doesn't seem to work for mouse chords.
Nice. I tried to write a quick version of this for my response, but wasn't aware of insert-key-sequence.
Edit: insert-key-sequence doesn't exist on Emacs 22.3.1, is that a more recent addition?
Also, while not crucial, I prefer to add a my-X-mode-hook function and add things to that, rather than adding several lambdas to the mode hook - it's easier to modify them all after binding that way.
Not offhand, but I looked it up and I think what you want is `key-description'. It prints key sequences, so e.g. (key-description "\370") evals to "M-x".