The following works without flattening the folder structure:
gulp.src(['input/folder/**/*']).pipe(gulp.dest('output/folder'));
The '**/*' is the important part. That expression is a glob which is a powerful file selection tool. For example, for copying only .js files use: 'input/folder/**/*.js'