Rectangles should be treated differently than polygons depending if they're rotated or not. If they aren't you can just do the simple check:
rect.Left <= other.Right AND
rect.Top <= other.Bottom AND
rect.Right >= other.Left AND
rect.Bottom >= other.Top;
But if they're rotated the check is much more expensive. That's why rectangles can't be treated as polygons at least at engine side.