@johncarlosbaez@Diffgeometer1 I thought that Thom proved something slightly different. Here's two ways you can use other manifolds to get homology class of M:
Take an oriented submanifold N of M, with inclusion j : N → M and consider j_*([N]).
Take an arbitrary oriented manifold N with an arbitrary smooth map f : N → M and consider f_*([N]).
I thought Thom's results were about 2, not 1. Do the classes considered in 1 also generate the rational homology?