It sounds so simple, but I see it all the time: writers trying to write something they're not. Frank is a sci-fi guy, but he's writing a mob movie because he heard that Hollywood is looking for gangster films. He may be correct that studios are buying mob scripts right now, but who is to say they'll be buying them in a year when Frank finishes the script? Besides, Frank doesn't even like mob/gangster films, so why should we assume he'll write a good one.
If you're writing a screenplay, most probably it's because you love movies, but there are few people who love all genres, and that's okay. Really try hard to figure out who you are - action, comedy, western - and be that. Don't attempt to become a master in every genre. You will only end up becoming mediocre in them all.
And never watch a bad movie and say, "I can do better than that." Instead, watch a good movie and say it. Now you're onto something. Just because you're a horror guy doesn't mean you can't bring us something different, something fresh and original, something that even redefines the genre.
It's true: you are what you write. So figure out what kind of movies you want to write - the movies you would pay to go see yourself - and write them.