There are numerous ways to do that, including the following (assuming GNU `xargs`):
sed -e '/^[[:space:]]*$/d' -e 's/$/.txt/' fileNames.txt | xargs -rd '\
' touch --
This assumes that there is only one filename per line in fileNames.txt. The `sed` script deletes blank lines (thanks to @rubynorails) and adds '.txt' to the end of each filename before piping them to `xargs touch`.
By using the `-d '\
'` option with xargs (a GNU extension, which tells `xargs` to use only newline or '\
' as the delimiter rather than any whitespace, and disables quote processing) this even copes with filenames that have spaces and other potentially-problematic characters (except for `\
` or newline itself). e.g. if a line contained 'abet able', without `-d '\
'`, two files (`abet` and `able.txt`) would be created. With it, only one file `abet able.txt` will be created.