Form tiles in a rectangular ring
Dyalog APL, 8 bytes

×/¨1&lt;⊂|⍳


This monadic function train takes height and width as right arguments and returns a 2D array of 0's (border) and 1's (interior). Test it on TryAPL.

How it works

×/¨1&lt;⊂|⍳  Right argument: h w

       ⍳  Generate all index pairs (1-based) of a h×w array.
     ⊂    Enclose (h w), so it depth matches the one of the index array.
      |   For each pair (i j) compute the remainders of the division by (h w).
   1&lt;     Compare all remainders with 1.
×/¨       Reduce each pair of Booleans by multiplication.