Theres alot to such a small questions.
The first part is, the max size of a Ethernet frame is configuration. For example, if you have a gig or above Ethernet you can use jumbo frames which can be 9000 bytes. And just enabling dot1q will make your frames 1512 bytes.
That being said the Max size of a IP packet is 65,535, 576 bytes is the minimum size required to be IEEE complaint for a host. Or I guess that could be better said that a host has to be able to accept a IP Packet of at least 576 bytes. Most modern implementations will use much larger packets.
Last piece is there is a MTU configured on a host that tells it how big to make a ip packet. Alot of systems (Macs/Windows/Ubunto i know for sure) use 1500 as the default MTU.