Let $X$ be a set, and let $f$ be a function $X \to \mathcal{P}(X)$. To prove Cantor's theorem, we want to show that $f$ is not surjective. (There is no need to assume that $f$ is injective, by the way.)
Your objection is that it is not "logical" to define the set $A=\{x \in X: x \notin f(x)\}$. To the extent that this is a philosophical criticism, it may or may not be correct, but in any case wouldn't amount to showing a "mistake" in the proof. So let's stick to the mathematics.
The formal justification for the existence of $A$ is an instance of the Separation axiom schema: for every set $X$, formula $\varphi$, and parameter $p$ there is a set denoted $\{x \in X: \varphi(p,x)\}$ whose elements are the elements $x$ of $X$ such that $\varphi(p,x)$ holds.
Your objection seems to be that this definition of $A$ leads to a contradiction if $X$ is the "set of all sets" and $f$ is the identity function. This is a good and important observation. If the conjunction of two things leads to a contradiction, then (at least) one of them must be wrong. Either Cantor's argument is wrong, or there is no "set of all sets."
After having made this observation, to ensure that one has a consistent theory of sets one must either (1) disallow some step in Cantor's proof (e.g. the use of the Separation axiom) or (2) reject the notion of "set of all sets" as unjustified. Mainstream mathematics has done (2), for the reason that you (and Russell) pointed out. It is also possible to do (1) instead, as in New Foundations set theory.
EDIT: I missed some things on my first reading. Your third-to-last paragraph, if all its claims were true, would show that set theory as used by Cantor was inconsistent. Note that this would be quite different (mathematically, if not philosophically) from showing that there was a mistake in his proof! A proof of inconsistency would be a perfectly valid proof, not to mention an important one. In any case, some of your claims are not true, as I explain below.
Letting $f$ be the identity function, you argue that $A$ must be empty:
Now look at the definition of $A$: there is no element of $X$, such that $x \notin f(x)$...
This step is not right. There are plenty of possibilities for $x$ such that $x \notin x$. Perhaps you are confusing $x \notin x$ with $x \ne x$.
Then you argue that $A$ cannot be empty.
...in fact $A$ can not be even an empty set: because even for empty set: $f(\emptyset)=\emptyset$, thus $\emptyset \notin A$.
This step is not right either. First, as Greg Martin points out, $\emptyset \notin \emptyset$, so if $\emptyset \in X$ then $\emptyset \in A$. Second, even if $\emptyset \notin A$ it doesn't follow that $A \ne \emptyset$. Perhaps you are confusing "$\in$" with "$=$" again.
Yes, this is an issue.
Naively, this issue cannot be dealt with, and we'll get to that in a moment. But in 1917 mathematicians already noticed that "normal sets" do not contain themselves, and in fact have an even stronger property. Namely, there are no infinite decreasing chains in $\in$, so not only that $a\notin a$ it is also true that $a\notin b$ whenever $b\in a$, and that $a\notin c$ whenever for some $b\in a$ we have $c\in b$; and more generally there is no sequence $x_n$ such that $x_{n+1}\in x_n$ for all $n$.
This is exactly what the axiom of regularity came to formalize. It says that the membership relation is well-founded, which assuming the axiom of choice, is equivalent to saying that there are no decreasing chains. In particular $A\notin A$, for any set $A$.
But we know, nowadays, that it is consistent relative to the other axioms of modern set theory (read: $\sf ZFC$) that there are sets which include themselves, namely $x\in x$. We can even go as far as having $x=\{x\}$. You can even arrange for infinitely many sets of the form $x=\{x\}$.
This shows that naively we cannot prove nor disprove that sets which contain themselves exist. Because naive set theory has no formal axioms, and is usually taken as a subset of axioms which include very little from $\sf ZFC$ in terms of axioms, and certainly it does not include the axiom of regularity.
But it also tells us that we cannot point out at a set which includes itself, if we do not assume the axiom of regularity. Since these sets cannot be defined in a nontrivial way. They may exist and may not exist, depending on the universe of sets we are in. But we do know that in order to do naive set theory and even more, we can safely assume that this situation never occurs.
Best Answer
Russell's paradox, as well other paradoxes (Cantor's paradox, Burali-Forti paradox) simply tell us that some collections that we can define are not sets. There are two ways to overcome these things:
In modern set theory such as ZFC (Zermelo-Fraenkel with Choice) the collection of all sets is not a set. This is why there is a notion of class, it simply means a collection which we can define. In the case of "all the sets" we just define it to be $\{x\mid x=x\}$.
There are, however, set theories in which the collection of all sets is a set. One example is NF (New Foundations). In this theory we limit the formulas which define new sets, and so Russell's collection cannot become a set. This means that we cannot prove from NF that the collection defined by Russell's paradox is a set itself, so no contradiction arises.
Further reading material: