Variadic function arguments a la <cstdarg> are not typesafe, and they're not a good idea in C++. If you have C++11, you can use variadic templates for much better results.
Be that as it may, if you want to go with variadic function arguments, you have to tell the function which arguments there are and how big they are. Traditionally, you would pass that information in one of the arguments (like printf does). If you wanted to, you could use the template parameter for that effect, but since you have to have at least one non-variadic argument anyway, there's really no need. Most importantly, making the function a template will instantiate a different piece of code for every N!
So, to summarize: Don't use variadic functions. If you have to use variadic functions, don't use templates with them.