I feel the answer to (a) is quite complicated. However, the fundamental group of the graph consisting of one vertex and infinitely many loops coming out of it (an infinite bouquet) is the infinitely generated free group. Such a graph cannot have a finitely generated infinite group...so that is sort of why, but it does need more of a proof.
You could try looking up either Magnus, Karrass and Solitar, or Lyndon and Schupp. Both books are called Combinatorial Group Theory, and both start with a look at free groups. (The first book is excellent, the second very interesting).