Common Lisp - 135 characters
(defun f(x)(let((l(loop for c across(write-to-string x)collect(digit-char-p c))))(= x(reduce '+ l :key(lambda(y)(expt y(length l)))))))
Formatted:
(defun f(x)
(let((l(loop for c across(write-to-string x)collect(digit-char-p c))))
(= x(reduce '+ l :key(lambda(y)(expt y(length l)))))))
Integer-to-list from here.