I think you've got the order of your commandline arguments wrong (the redirection to a file should be the end), and you need an extra parameter for xargs
so we can specify the database name to mysqldump.
Additionally, you need to append >>
the dump data, otherwise you'd be overwriting the mydump.sql file for each table:
mysqldump -u root -pmypassword mydb --no-data > mydump.sql
mysql -u root -pmypassword -N < showtables.txt | xargs -I {} mysqldump -v -u root -pmypassword mydb {} >> mydump.sql
Sources: http://www.cyberciti.biz/faq/linux-unix-bsd-xargs-construct-argument-lists-utility/