Why is a proposition implying its converse equivalent to its converse? In other words,
Why is ((p implies q) implies (q implies p)) equivalent to just (q implies p)?
How to prove it without the help of a truth value table?
 A: You can reason informally like this.  $$((p\to q)\to(q\to p))\iff(q\to p)$$ if (and only if) $(p\to q)\to(q\to p)$ and $q\to p$ always have the same truth value.  Remember that $a\to b$ is true except in the case where $a$ is true and $b$ is false.  
First, suppose that $q\to p$ is true.  Then $(p\to q)\to(q\to p)$ is true also, since the conclusion is true.  
Second, suppose $q\to p$ is false.  Then $p$ is false, so $p\to q$ is true.  Therefore $(p\to q)\to(q\to p)$ is false.
In all cases, the two statements have the same truth value.  I'm not sure this proof is any more intuitive than a truth table. The statement itself is not very intuitive.
A: I think the key point here is the following:

For any propositions $p,q$, at least one of $p\rightarrow q$ and $q\rightarrow p$ is true.

(They could both be true - in fact, they'll both be true exactly when $p$ and $q$ have the same truth value.)
This fact is really weird from the point of view of natural language; it's a feature of the way we define implication ("material implication") in formal logic. Namely, the only way "$a\rightarrow b$" can be false is if $a$ is true and $b$ is false, so in order for $p\rightarrow q$ and $q\rightarrow p$ to each be false we'd have to have $p$ be true and $q$ be false and $q$ be true and $p$ be false - and this is clearly impossible.
So write $A$ for $p\rightarrow q$ and $B$ for $q\rightarrow p$. The hypothesis you're considering is $A\rightarrow B$, and the fact above says that we know $A\vee B$ right from the get-go. But it should be clear that from $A\rightarrow B$ and $A\vee B$ we can conclude $B$.

OK, strictly speaking all this is saying is that $(p\rightarrow q)\rightarrow (q\rightarrow p)$ implies $q\rightarrow p$. But the other direction should be easy to understand once this one's grasped: if the consequent of an implication is true, then the whole implication is automatically true (remember: an implication is false if and only if its antecedent is true and its consequent is false), so if $q\rightarrow p$ is true then so is $X\rightarrow (q\rightarrow p)$ for any $X$ - now just take $X$ to be $p\rightarrow q$.
A: It is indeed not intuitive, because the mathematically defined material implication ($\to$) does not always line up with our intuitions when reading it is as an English 'if ... then ...' (see Paradoxes of Material Implication)
But, the way the material implication is defined, the following equivalence holds:
Implication
$$p \lor q \iff \neg p \lor q$$
With Implication, and some other equivalence principles you can now prove the equivalence you are asking about:
$$(p\to q)\to(q\to p) \overset{Implication}{\iff}$$ 
$$\neg (p \to q) \lor (q\to p)\overset{Implication}{\iff} $$
$$\neg (\neg p \lor q) \lor (\neg q \lor p)\overset{DeMorgan}{\iff} $$
$$(p \land \neg q) \lor \neg q \lor p\overset{Absorption}{\iff} $$
$$\neg q \lor p\overset{Implication}{\iff} $$
$$q\to p$$ 
A: As a different perspective, we can use a propositions-as-types approach or the BHK interpretation. This approach works most naturally for constructive logic, but I find it enlightening when it is applicable. Luckily, this result is constructively true. In these interpretations, an implication $P\to Q$ is represented as a function from some type of evidence for $P$ to a type of evidence for $Q$. In other words, evidence for $P\to Q$ is a function from evidence for $P$ to evidence for $Q$. What constitutes evidence for an atomic proposition is left abstract. For example, to provide evidence for $P\to P$, we don't actually need to know what evidence for $P$ looks like; we can just provide a function that returns whatever evidence it is given, i.e. the identity function.
Below is a mechanized proof (in Agda) for the harder direction of the equivalence. This uses notation from the (typed) lambda calculus.
thm : {P Q : Set} → ((P → Q) → (Q → P)) → (Q → P)
thm f q = f (λ _ → q) q

What's going on is f represents the evidence for $(P\to Q)\to(Q\to P)$ which is to say a function that takes a function $P\to Q$ and evidence for $Q$ and produces evidence for $P$. We've also been given some evidence for $Q$, namely q. We then need to produce some evidence for $P$. f produces such evidence as long as we can give it evidence for $P\to Q$ and $Q$. We already have evidence for $Q$, so we just need to construct evidence for $P\to Q$. But if we know $Q$ (i.e. have evidence for it) then $P\to Q$ holds no matter what $P$ is. This is represented by the evidence for $P\to Q$ being the constantly q function which just ignores the evidence for $P$.
One nice thing about this approach is that it is fairly obvious what to do at each step. (In fact, it is so obvious that Agda produces exactly the above proof term itself, completely automatically.) If you have experience with programming (and particularly typed functional programming), many intuitions with respect to data flow and such make it very easy to see how to prove certain statements, or if they are not (constructively) provable.
