How much does learning C to moderate level help you as a programmer. For example, does being competent in C make it easier to pick up languages as time goes on and get a better understanding of them?
Learning C will only help you in learning languages which are very much like C. But then, what do you gain from you learning them? The further away from C the language you want to learn is, the less learning C will help you.
In particular, C is missing a lot of concepts, paradigms and ideas that are present in more modern languages: first-class procedures, Objects, Algebraic Data Types, parametric polymorphism, ad-hoc polymorphism, inclusion polymorphism, subtyping, inheritance, delegation, concurrency, parallelism, asynchrony, modularity, first-class control flow (e.g. continuations), static compile-time metaprogramming, dynamic metaprogramming, higher-kinded types, rank-n types, dependent types, type inference, dynamic typing, EDSLs, … (those are just a few that spring to my mind).
Learning C or something similar, such as Pascal, may help you to understand how the compiler, linker, and run-time libraries work together, so you can better understand the low level details of computer systems. This was my experience when comparing the output of a C compiler to assembly code. C will not help much with higher level language ideas, which are easier to use in other languages, such as those described by Jörg W Mittag.