Well, the package must be built on the correct arch and the control file does have a bearing on the process.
Originally Posted by TheForkOfJustice
This means that the package is architecture independent. So it doesn't matter what architecture it is built on, it can run on all architectures. Chances are you're meta-package is Architecture: all.
The resulting deb will be something like: foo_2.5-1_all.deb
This means its architecture dependent. So it does matter what arch it is built on. The user must install a version built on the same arch that they are running. It also means that the package should build on any arch that it is attempted. So when you upload a package that is arch: any, it will be built on all availiable archs.
The resulting debs will be something like: foo_2.5-1_i386.deb, foo_2.5-1_amd64.deb, foo_2.5-1_sparc.deb, and so on...
This means its architecture dependent, but that it will only successfully build on i386, amd64, and powerpc. So when you upload this package, it will only build on those archs, and the buildds will not bother trying to compile it on alpha, sparc, mipsel, ect..
Architecture: i386 amd64 powerpc
Again, the debs will be something like: foo_2.5-1_i386.deb and foo_2.5-1_amd64.deb
Hope that makes sense....