A common cause of supply voltage sag and thus brown-out reset of Arduinos is when additional devices, such as motors, electromagnetic relays, or high power LEDs, are supplied from the same power source as the Arduino. The power supply needs to have the capacity to sustain regulated voltage under such loads, else the voltage drops.
This is exacerbated when the power source is USB: USB ports supply up to 500 mA by default, and unpowered USB hubs can drop to even lower depending on other USB peripherals connected.
The solution to this issue is to source the high current device's power independently of the Arduino (but with the grounds connected together), and use a BJT, MOSFET or low-drive-current relay to switch the device from the Arduino.
The other basic proactive approach, especially when transient current draws (a flashing high power LED, or a stepper motor, for instance) are causing a supply voltage drop, is to use a suitably large capacitor on the supply line (PWRIN on the Arduino schematic), as a reservoir capacitor to tide over these transients. If the current draw is consistently high, this will not solve the issue, though, and a higher rated power source would be needed.