Question 1
If you want to "prove" that the Mandelbrot set is a "fractal", then you'll need to work with some specific definition. Under the characteristics section of the Wikipedia page on fractals, we see a couple of relevant points.
The first clear definition of fractal was written in 1975 by Benoit Mandelbrot himself. Specifically, a set is a fractal if its Hausdorff dimension is strictly greater than its topological dimension. Even with the links, this is not a particularly easy definition to understand. As it turns out, the Mandelbrot set is not a fractal according to this definition, as its Hausdorff dimension and topological dimension are both 2. However, the boundary of the Mandelbrot set is a fractal, according to this definition. The boundary of a set of topological dimension 2 is, perhaps not surprisingly, 1. In fact, topological dimension is defined inductively in a way to make this statement almost a tautology. Thus, the boundary of the Mandelbrot set has topological dimension 1. The Hausdorff dimension of the Mandelbrot set is, in contrast, so complicated that it has Hausdorff dimension two. This was proven in the early 90s and there is a copy of that famous paper on the arXiv.
Also under the characteristics section of the Wikipedia page on fractals, we see that Falconer advocates leaving the term "fractal" undefined. In this sense, the term fractal becomes more of a topic, rather than an object, that gathers a number of themes together including dimension, self-similarity and related ideas.
Question 2
I don't think it's really a question of which maps produce fractals, rather, it's a question of how do maps produce fractals.
Consider iterated function systems, which produce self-similar sets like the Sierpinski triangle, for example. These are simply lists of very simple functions, typically linear transformations - the very antithesis of what we consider to be "fractal". A standard way to visualize a linear transformation is via it's effect on some set or sets in the plane. The function $(x,y)\rightarrow(x/2,y/2)$, for example, shrinks the unit square by the fact two in every direction:
Now, if we combine that same transformation with two more transformations that also shift the set, then we can generate the Sierpinski triangle with an iterative procedure:
Now the point is that we are still using linear maps but it is the iterative procedure that creates the fractal effect.
Similarly, the Mandelbrot set is generated using functions of the form $f_c(z)=z^2+c$ where $c$ is a complex parameter. These functions are studied in precalculus and, of course, they generate simple parabolas. The Mandelbrot set, however, is defined as the set of all complex numbers $c$ so that the orbit of $0$ remains bounded under iteration of $f_c$. Again, it is the iteration that creates the fractal effect.
Finally, the Weierstrass function that you ask about is not generated via an iterative procedure, but it is still generated a limit involving simple functions. I guess the standard definition looks like:
$$\sum_{k=0}^{\infty} a^k \cos(b^k x) = \lim_{n\rightarrow\infty}
\sum_{k=0}^{n} a^k \cos(b^k x).$$
I added the limit to emphasize the fact that the infinite sum is a limit of partial sums. The sequence of approximations for $a=1/2$ and $b=4$ looks something like so:
Best Answer
My favourite book on fractals is Measure, Topology, and Fractal Geometry by Edgar. A short book and not very well known. It has a great many exercises all very suitable at undergrad. level but it requires a good mathematical background in basic analysis and topology. Apart from focusing on the geometrical aspects it also gives an excellent overview on different fractal dimensions definitions. But if I remember correctly this book does not cover fractals in the complex plane (Julia sets)
However, if you just want an overview on fractals I would start with Chaos and Fractals New Frontiers of Science by Peitgen, Jurgens & Saupe. It does not really give definitions but it guides the reader with simple examples or numerical experiments to the interesting properties of fractals.
A good understanding of Julia sets unfortunately requires a good understanding of Riemann surfaces, Hyperbolic geometry and Complex Analysis. The only book I know which also covers the necessary background is the Dynamics in one complex variable by (Fields medal winner) John Milnor. This is quite a tough book I read it when I was an undergrad. but I only fully understood it when I was a grad. student. But the material is great it covers Julia sets both from an analytical and topological view. It contains a collections of amazing proofs e.g. which Julia sets are smooth, when is a (polynomial) Julia set connected and a great many fun and insightful exercises.
I am actually not sure what level you are looking for but let me order the books based on difficulty (lowest easiest). Also perhaps you might be interested in reading Falconer's Fractal Geometry book. I only read some chapters many years ago, unfortunately the author introduces the Hausdorff dimension somewhere in the beginning which is perhaps one of the most difficult dimension definitions but after that it gets more easier.
Chaos and Fractals New Frontiers of Science by Peitgen. Jurgens & Saupe (No real proofs, but contains numerics and gives excellent intuition. Also the authors always put references in their informal statements to books/articles where you can find the details)
Fractal Geometry by Falconer (only the beginning is difficult, but contains mathematical rigour and simple proofs.)
Measure, Topology, and Fractal Geometry (nice exercises, requires good background in basic analysis and topology. Note it also contains a section on basic topology/metric spaces)
Dynamics in one complex variable by John Milnor (Only Julia sets, very difficult, but also very awesome)